📁 코딩테스트 준비/Python

[구현 / python] 상하좌우

박개봄 2022. 11. 21. 14:06
728x90

문제풀이

# 공간의 크기 입력
n = int(input())
# 이동할 계획서 내용 입력
plans = input().split()
#초기 좌표
x,y=1,1

# L,R,U,D에 따른 이동 방향
# dx는 행들이므로 y축 이동
# dy는 열들이므로 x축 이동
dx = [0,0,-1,1]
dy = [-1,1,0,0]
move_types=['L','R','U','D']

# 입력받은 plans의 수 만큼
for plan in plans:
    #현재 plan과 move_types를 비교하면서
    for i in range(len(move_types)):
        # plan과 현재 move_types가 같으면 수행!
        if plan == move_types[i]:
            # dx, dy 만큼 이동 후의 좌표 구하기
            nx = dx[i]+x
            ny = dy[i]+y

    # 공간을 벗어나는 경우
    # if문 밑의 x,y 이동을 하지 않고 무시(다음 반복으로 이동)
    if nx<1 or ny<1 or nx>n or ny>n:
        continue
    # 좌표 이동 수행
    x,y=nx,ny

print(x,y)
728x90