데이터 꿈나무
[Alforithm] 이코테_상하좌우 문제 (110p) 본문
- 입력 조건
- 첫째 줄에 공간의 크기를 나타내는 n이 주어진다. (1 <= n <= 100)
- 둘째 줄에 여행가 A가 이동할 계획서 내용이 주어진다. (1 <= 이동 횟수 <= 100)
- 출력 조건
첫째 줄에 여행가 A가 최종적으로 도착할 지점의 좌표 (X, Y)를 공백으로 구분하여 출력한다.
- 입력 예시
5
R R R U D D
- 출력 예시
3 4
L: 왼쪽으로 한 칸 이동
R: 오른쪽으로 한 칸 이동
U: 위로 한 칸 이동
D: 아래로 한 칸 이동
- 작성한 코드
n = int(input())
plans = input().split()
x, y = 1,1
# 'L','R','U','D'에 따른 이동 방향
dx = [0,0,-1,1]
dy = [-1,1,0,0]
move_type = ['L','R','U','D']
for plan in plans: # plan 하나당,
for i in range(len(move_type)): # move_type 하나씩 탐색.
if plan == move_type[i]: # plan과 move_type을 하나씩 탐색하면서 같은 것이 나온 경우에 이후 코드 진행
nx = x + dx[i]
ny = y + dy[i]
# 공간을 벗어나는 경우 무시
if nx < 1 or ny < 1 or nx > n or ny > n:
continue
# 이동 수행(x,y 업데이트)
x, y = nx, ny
print(x, y)

'Activity > Algorithm' 카테고리의 다른 글
| [KT_코딩마스터스] 분리수거장 (python) (0) | 2024.09.21 |
|---|---|
| [Algorithm] 백준 10989번 수 정렬하기 3 (0) | 2024.07.28 |
| [프로그래머스] 콜라츠 추측_Python (0) | 2023.07.12 |
| [프로그래머스] 최댓값 만들기(2) (0) | 2023.02.22 |
| [코딩 테스트] 프로그래머스_암호해독(문자열에서 배수 글자만 출력하기) (0) | 2023.02.21 |
Comments