[BOJ] 자리배정

Date:

[BOJ] 자리배정

Problem URL : 자리배정

d = {0: (0, 1), 1: (1, 0), 2: (0, -1), 3: (-1, 0)}
c, r = map(int, input().split())
N = int(input())
visit = [[0] * (r + 1) for _ in range(c + 1)]
dir = 0
cnt = 1
x = 1
y = 0
if N > r * c:
    print(0)
    exit()

dx = d[dir][0]
dy = d[dir][1]

while True:
    dx = d[dir][0]
    dy = d[dir][1]

    while 1 <= x + dx <= c and 1 <= y + dy <= r and visit[x + dx][y + dy] == 0:
        x = x + dx
        y = y + dy
        visit[x][y] = cnt
        if cnt == N:
            print(x, y)
            exit()
        cnt = cnt + 1

    dir = (dir + 1) % 4

Comments

처음에는 재귀로 풀었는데 Recursion Error 가 떠서 반복문으로 고쳤다.
그 외에도 가로, 세로가 헷갈려서 Index Error가 몇번 떳었다 ㅠ

댓글