여행가 A는 N N 크기의 정사각형 공간 위에 서 있습니다. 이 공간은 1 1 크기의 정사각형으로 나눠져 있습니다. 가장 왼쪽 위 좌표는 (1,1)이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당합니다. 여행가는 상-하-좌-우 방향으로 이동할 수 있으며, 시작 좌표는 항상 (1,1)입니다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 있습니다.
L : 왼쪽으로 한 칸 이동
R : 오른쪽으로 한 칸 이동
U : 위로 한 칸 이동
D : 아래로 한 칸 이동
이때 여행가 A가 N * N 크기의 정사각형 공간을 벗어나는 움직임은 무시됩니다. 예를 들어 (1,1)의 위에서 L 혹은 U를 만나면 무시됩니다.
import sys
input = sys.stdin.readline
N = int(input())
y, x = 1, 1
dic = {"R" : (0, 1), "L" : (0, -1), "U" : (-1, 0), "D" : (1, 0)}
dir = list(map(str, input().split()))
for d in dir:
ny = y
nx = x
ty = y + dic[d][0]
tx = x + dic[d][1]
if ty <= 0 or ty > N or tx <= 0 or tx > N:
y = ny
x = nx
else:
y = ty
x = tx
print(y, x)
이것이 코딩테스트다 with 파이썬 - 상하좌우
모범 답안 - 상하좌우