[Python]알고리즘/이코테 2021
[구현] 문제1 - 상하좌우
HSY_mumu
2022. 3. 18. 19:07
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