[이것이 코딩테스트다] 상하좌우

Turtle·2024년 9월 10일
0
post-thumbnail

🗃️문제 설명

여행가 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 파이썬 - 상하좌우
모범 답안 - 상하좌우

0개의 댓글