문제: 무단 배포 금지로 인해 사이트 주소로 남깁니다.
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq
정답 코드:
T = int(input())
for test_case in range(1, T + 1):
N = int(input())
# 1일 때
if N == 1:
print(f"#{test_case}")
print(1)
continue
# 2일 때
elif N == 2:
print(f"#{test_case}")
arr = [[1,2],[4,3]]
for i in range(len(arr)):
print(*arr[i])
continue
#3 이상부터
arr = [[None] * N for _ in range(N)]
# 한 바퀴 돌 때마다, 범위 조정 하기 위한 변수 설정
c_round = 0
# 들어갈 값
value = 1
while True:
for i in range(4):
for i in range(N - 1 - (2 * c_round)):
arr[c_round][i + c_round] = value
value += 1
arr = list(map(list, zip(*arr)))
arr.reverse()
c_round += 1
if N - c_round == 1:
if N % 2 == 1:
arr[N//2][N//2] = value
break
print(f"#{test_case}")
for i in range(N):
print(*arr[i])
'SWEA' 카테고리의 다른 글
1284. 수도 요금 경쟁 (0) | 2024.07.15 |
---|---|
1945. 간단한 소인수분해 (0) | 2024.07.15 |
1959. 두 개의 숫자열 (0) | 2024.07.15 |
1961. 숫자 배열 회전 (0) | 2024.07.15 |
1979. 어디에 단어가 들어갈 수 있을까 (0) | 2024.07.15 |