SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
T = int(input())
dr = [0, 1, 0, -1]
dc = [1, 0, -1, 0]
for test_case in range(1, T+1):
N = int(input())
snail = [[0] * N for _ in range(N)]
r, c = 0, 0
dist = 0 #우, 하, 좌, 상
for k in range(1, N*N + 1):
snail[r][c] = k
r += dr[dist]
c += dc[dist]
if r < 0 or c < 0 or r >= N or c >= N or snail[r][c] != 0:
# 실행 취소
r -= dr[dist]
c -= dc[dist]
# 방향 전환
dist = (dist + 1) % 4
# 다시 움직임
r += dr[dist]
c += dc[dist]
print("#" + str(test_case))
for row in snail:
print(*row)