728x90
상하좌우
1) 문제 해결 아이디어
이동 계획을 리스트로 저장해두고 해당 계획에 따라 범위 내 좌표이면 이동시킨다
2) 소스코드
(풀이1) if 문으로 구분
n = int(input()) # n * n
move = input().split() # 이동 계획
x, y = 1, 1
# 계획대로 움직이기
for i in range(len(move)):
if(move[i] == "L" and y > 0):
y -= 1
elif(move[i] == "R" and y < n):
y += 1
elif(move[i] == "U" and x > 0):
x -= 1
elif(move[i] == "D" and x < n):
x += 1
print(x, y)
(풀이2) 이동 방향, 좌표를 리스트로 구현
n = int(input()) # n * n
planList = input().split() # 이동 계획
x, y = 1, 1 # 출발 지점으로 초기화
# L, R, U, D
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
move_types = ['L', 'R', 'U', 'D']
# 계획대로 움직이기
for plan in planList:
# 계획 찾기
for i in range(len(move_types)):
if(move_types[i] == plan):
# 이동 후 예상 좌표
nx = x + dx[i]
ny = y + dy[i]
# 이동 시 범위 내 좌표이면 이동하기
if(1 <= nx <= n and 1 <= ny <= n):
x = nx
y = ny
print(x, y)
728x90
'[Python]알고리즘 > 이코테 2021' 카테고리의 다른 글
[구현] 문제3 - 왕실의 나이트 (0) | 2022.03.18 |
---|---|
[구현] 문제2 - 시각 (0) | 2022.03.18 |
[그리디 알고리즘] 숫자 카드 게임 (0) | 2022.03.18 |
[그리디 알고리즘] ★ 큰 수의 법칙 (0) | 2022.03.18 |
[그리디 알고리즘] ★ 문제3 - 모험가 길드 (0) | 2022.03.18 |