달팽이 행렬의 패턴을 찾는 문제이다.
T = int(input())
for test_case in range(1, T + 1):
N = int(input())
matrix = [[0 for _ in range(N)] for _ in range(N)]
temp = N
row = 0
col = 0
num = 1
turn = 0
while temp > 0 :
if turn % 2 == 0:
for i in range(col,temp):
matrix[row][i] = num
num += 1
col = i
if num == N**2:
break
row += 1
for j in range(row,temp):
matrix[j][col] = num
num += 1
row = j
col -= 1
turn += 1
temp -= 1
else:
for i in range(col,N-2-temp,-1):
matrix[row][i] = num
num += 1
col = i
row -= 1
for j in range(row,N-1-temp,-1):
matrix[j][col] = num
num += 1
row = j
col += 1
turn += 1
print(f'#{test_case}')
for i in matrix:
print(*i)