본문 바로가기

스터디 1일 1커밋

240227 [SWEA] 2805. 농작물 수확하기

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


나의 코드


T = int(input())
for t in range(T):
    N = int(input())
    arr = [list(map(int, input())) for _ in range(N)]

    s = e = (N-1)//2
    sum_v = 0
    for r in range(N):  # 행 인덱스
        for c in range(s, e+1):  # 열 인덱스
            sum_v += arr[r][c]

        if r < (N-1)//2:
            s = s - 1
            e = e + 1
        else:
            s = s + 1
            e = e - 1

    print(f'#{t+1} {sum_v}')

결과


인덱스를 어떻게 설정해야 할지는 알았지만 어떻게 구현하는지 조금 어려웠던 문제다. 인덱스의 범위가 늘었다가 줄어들어서 요새 배우는 재귀함수로 써보려다가 막막했다...ㅎㅎㅎ 아무튼 조금만 생각해보면 그렇게는 어렵지 않은 것 같지만 나에겐 어려웠던 문제였다.