KEEP GOING
[python] SWEA 1954 : 달팽이 숫자 본문
반응형
1. 코드 구현
# 동 남 서 북
dx = [0,1,0,-1]
dy = [1,0,-1,0]
def turn(position):
if position == 3:
return 0
return position+1
for t in range(1, T+1):
N = int(input())
snail = [[0]*N for _ in range(N)]
x, y = 0, 0
snail[x][y] = 1
p = 0
for n in range(2, N**2+1):
nx = x + dx[p]
ny = y + dy[p]
if nx<0 or nx>=N or ny<0 or ny>=N or snail[nx][ny] != 0:
p = turn(p)
nx = x + dx[p]
ny = y + dy[p]
snail[nx][ny] = n
x = nx
y = ny
print(f'#{t}')
for i in range(N):
for j in range(N):
print(snail[i][j], end=' ')
print()
반응형
'code review > implementation' 카테고리의 다른 글
[python] 프로그래머스 67256번 : 키패드 누르기 (divmod()) (0) | 2022.03.17 |
---|---|
[python] 백준 6603번 : 로또 (combination, backtracking) (0) | 2022.02.25 |
[python] 백준 19237번: 어른 상어 (0) | 2022.01.25 |
[python] 백준 15686번 : 치킨배달 (combinations, 선형탐색) (0) | 2022.01.11 |
[python] 프로그래머스 60057번 : 문자열 압축 (slicing) (0) | 2022.01.07 |
Comments