T = int(input())

for tc in range(1,1+T):

    # 농장의 크기
    n = int(input())

    # 농장
    farm = [list(map(int,input())) for _ in range(n)]

    # 결과
    res = 0

    # 3가지 경우의 수
    # 1. 0~n//2까지
    for case1_i in range(0,n//2):
        for case1_j in range(case1_i+1):
            if case1_j == 0:
                res += farm[case1_i][n//2]

            else:
                res += farm[case1_i][n//2+case1_j]
                res += farm[case1_i][n//2-case1_j]

    # 2. n//2
    for case2_j in range(n):
        res += farm[n//2][case2_j]

    # 3. n//2+1 ~ n까지
    for case3_i in range(n//2+1,n):
        for case3_j in range(n-case3_i):
            if case3_j == 0:
                res += farm[case3_i][n//2]

            else:
                res += farm[case3_i][n//2+case3_j]
                res += farm[case3_i][n//2-case3_j]

    print('#{} {}'.format(tc,res))

 

그 외

문제 풀이를 위한 아이디어

 

1. 마름모를 만드는 과정을 세 부분으로 나눠서 생각 했음

1) 0 ~ n//2까지 : 마름모의 가로 길이가 커지는 과정

2) n//2 : 마름모 가로 길이가 가장 긴 부분

3) n//2+1 ~ n까지 : 마름모의 가로 길이가 점차 작아지는 과정

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다