728x90
SMALL
문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
어디선가 많이 본, 빙글빙글 돌면서 숫자를 출력하는 문제이다.
🐌 풀이
move로 이동할 좌표 순서를 지정 (오른쪽, 아래, 왼쪽, 위) 후 index가 범위를 초과하거나 이미 숫자가 쓰여있으면 move를 옮긴다.
T=int(input())
for test_case in range(1,T+1):
n=int(input())
k=1
result_list=[]
move=[(0,1),(1,0),(0,-1),(-1,0)]
for _ in range(n):
result_list.append([-1 for x in range(n)])
move_count=0
num=2
i=0
j=0
result_list[0][0]=1
while num<=n**2:
dx, dy = move[move_count % 4]
if i+dx<0 or i+dx>=n or j+dy<0 or j+dy>=n or result_list[i+dx][j+dy]!=-1:
move_count+=1
dx, dy = move[move_count % 4]
result_list[i+dx][j+dy]=num
i=i+dx
j=j+dy
num+=1
print(f"#{test_case}")
for i in range(n):
for j in range(n):
print(result_list[i][j],end=' ')
print('')
728x90
LIST
'코테공부' 카테고리의 다른 글
python 백준 16926 배열 돌리기 1 (0) | 2025.02.05 |
---|---|
[SW Expert Academy]1249. [S/W 문제해결 응용] 4일차 - 보급로 (0) | 2024.11.17 |
[SW Expert Academy] 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (0) | 2024.11.16 |
[SW Expert Academy] 20936. 상자 정렬하기 (0) | 2024.11.15 |
[SW Expert Academy] 2072. 홀수만 더하기 (0) | 2024.11.12 |