알고리즘 문제풀이
백준 10157. 자리배정 Python 실버4
아크몽
2024. 2. 29. 02:31
달팽이 문제 심화같다
c,r = map(int,input().split()) # 가로 세로
k = int(input()) # 총 시행 횟수
arr = [[0]*(r+1) for _ in range(c+1)]
dij = [[0,1],[1,0],[0,-1],[-1,0]] # 오 아 왼 위
def find_seat():
if k > r*c: #예외처리
return
move = 0
idx = 1
i,j = 1,1
while idx <= k:
arr[i][j] = idx
ni = i + dij[move%4][0]
nj = j + dij[move%4][1]
if 0< ni<= c and 0< nj <= r and arr[ni][nj] == 0:
i,j = ni,nj
else:
move += 1 # 방향 바꾸기
i, j = i + dij[move % 4][0], j + dij[move % 4][1]
idx += 1
def find_xy():
for i in range(c+1):
for j in range(r+1):
if arr[i][j] == k:
return i,j
return 0,
find_seat()
print(*find_xy())