알고리즘 문제풀이/파이썬

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

Ella_K 2022. 6. 17. 15:32

[문제]

이것이 취업을 위한 코딩 테스트다 with 파이썬  의 p.110 예제 4-1 상하좌우

 


 

[입력 조건]

  • 첫째 줄에 공간의 크기를 나타내는 N이 주어진다. (1≤ N ≤ 100)
  • 둘째 줄에 여행가 A가 이동할 계획서 내용이 주어진다. (1≤ 이동횟수 ≤ 100) 

 

[출력 조건]

  • 첫째 줄에 여행가 A가 최종적으로 도착할 지점의 좌표 (X,Y)를 공백으로 구분하여 출력한다.
<입력 예시>
5
R R R U D D

<출력예시>
3 4

 


[책 풀이]

🔎 아이디어

  • 문제의 요구사항대로 구현한다. 
  • 리스트에 인덱스를 이용하여 이동 정보를 저장하고 사용한다.

 

🔎 코드

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

#인덱스를 이용하여 관련있는 정보 저장, 사용
move_type = ['L','R','U','D']
dx = [0,0,-1,1]
dy = [-1,1,0,0]

for move in plan:
  for i in range(len(move_type)):
    if move == move_type[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)

 


 

출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬 

* 포스팅에 책의 내용과 개인적인 해석이 같이 포함됩니다.