[문제]
[풀이]
i j cnt
0 0 1
0 1 2
0 2 3
0 3 4
(i+1, j)
1 3 5
2 3 6
3 3 7
(i, j-1)
.
. (규칙)
우 하 좌 상
i값 0 +1 - -1
j값 +1 0 -1 0
.
.
4X4 달팽이 출력
.
[소스코드]
import sys
sys.stdin=open("input.txt", "rt")
T=int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
di=[0,1,0,-1]
dj=[1,0,-1,0]
for test_case in range(1, T+1):
n=int(input())
arr=[[0]*n for _ in range(n)] # 2차원 배열 0으로 초기화
i,j,cnt, dr=0, 0, 1, 0 # 초기화
arr[i][j]=cnt
cnt+=1
while cnt<=n*n:
ni, nj=i+di[dr], j+dj[dr]
if 0<=ni<n and 0<=nj<n and arr[ni][nj]==0:
i, j=ni, nj
arr[i][j]=cnt
cnt+=1
else:
dr=(dr+1)%4
print(f'#{test_case}')
for i in arr:
print(*i)
[결과사진]
'알고리즘? > swea d2' 카테고리의 다른 글
swea 2005. 파스칼의 삼각형 (0) | 2023.05.16 |
---|---|
swea 2007. 패턴마디의 길이 (0) | 2023.05.16 |
swea 1926. 간단한 369게임 (숫자 쪼개기) (0) | 2023.05.15 |
swea 1204. 최빈수 구하기 (0) | 2023.05.15 |