[파이썬] 이코테 - 구현, 상하좌우 예제

김지현·2021년 7월 19일
0

구현 (Implementation)

  • 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정

[예제1] 거스름돈

✔문제
여행가 A는 N x N 크기의 정사각형 공간 위에 서있다. 이곳은 1X1 크기의 정사각형으로 나누어져 있다. 가장 왼쪽 위 좌표는 (1,1)이고, 가장 오른쪽 아래 좌표는(N,N)이다.

  • L 왼쪽 한 칸, R 오른쪽 한 칸, U 위로 한 칸, D 아래로 한 칸
    ex) 5
    R R R U D D -> 3 4 출력
    도착할 지점의 좌표를 출력해라.

[답안 예시]

n=int(input())
x,y = 1,1
plans = input().split()

dx = [0,0,-1,1]
dy = [-1,1,0,0]
move_types = ['L','R','U','D']

for plan in plans:
    for i in range(len(move_types)):
        if plan == move_types[i]:
            nx = x + dx[i]
            ny = y + dy[i]
    if nx<1 or ny<1 or nx>n or ny >n:
        continue
    x,y = nx,ny
print(x,y)

📌 dx, dy를 위 형태로 나타낼 수 있음을 새로 알았다.
즉 'L'은 (0,-1)의 이동을 'R'은 (0,1)의 이동을 하는데, 위와 같이 나타내면 쉽게 반복문으로 값을 알아낼 수 있다.

@이것이 코딩 테스트다 with 파이썬

profile
Programmer & Media

0개의 댓글