2805. 농작물 수확하기

기록하는 용도·2022년 5월 18일
0

감을 못잡다가 반으로 나눠서 구해야하는 면적이 늘어날때와 줄어들때를 따로 구했다.
인덱스를 주는 부분에서 실패했고 결국 다른 풀이를 보게되었다.

t=int(input())
for i in range(t):
    n = int(input())
    board = [list(map(int,input())) for _ in range(n)]

    start = n//2 #시작은 무조건 행의 중앙에서 시작하기때문에 시작점 끝점 똑같이
    end = n//2
    sum = 0
    a=0
    while a<n:
        for b in range(start, end+1):
            sum += board[a][b]
        print(sum)
        if a<(n//2):
            start -= 1
            end += 1
        else:
            start += 1
            end -= 1
        a+=1

    print("#{} {}".format(i+1, sum))

다시 푼 코드

t = int(input())
for i in range(t):
    n = int(input())
    board = [list(map(int,input())) for _ in range(n)]

    start = n//2
    end = n//2
    sum = 0
    for a in range(n):
        for b in range(start, end+1):
            sum += board[a][b]

        if a >= n//2:
            start+=1
            end-=1
        else:
            start -= 1
            end += 1

    print("#{} {}".format(i+1, sum))

0개의 댓글