상하좌우

ChoiDevv·2023년 1월 6일
0

풀이

n = int(input())
input_list = list(map(str, input().split()))
x, y = 1, 1

# L -> (0, -1) R -> (0, 1) U -> (1, 0) D -> (-1, 0)
move_x = [0, 0, -1, 1]
move_y = [-1, 1, 0, 0]
direction_list = ["L", "R", "U", "D"]

for direction in input_list:
    for i in range(len(direction_list)):
        if direction == direction_list[i]:
            mx = x + move_x[i]
            my = y + move_y[i]

    if mx < 1 or my < 1 or mx > n or my > n:
        continue
    x, y = mx, my

print(x, y)

의도

시뮬레이션을 사용하지 않고 돌릴 수 있는 방법을 생각하다가 그냥 완전탐색으로 하나하나 확인했다. 다만, 방향에 대해서는 도저히 감을 못잡았는데 책에 있는 그림을 보고 이해했다. 근데 이해한 줄 알고보니 또 잘못 이해했더라 ㅋㅋ.. 오른쪽으로 움직이면 (1, 1) -> (1, 2)가 되니 (0, 1)이 증가하겠구나! 했는데 위 아래에서는 또 반대로 했다.. 그래서 답이 안나와서 20분 벙쪘는데 찾았다.

profile
기억보단 기록을

0개의 댓글