n = int(input())
x, y = 1, 1
plans = input().split()
# U,R,D,L에 따른 이동 방향
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
move_types = ['U','R','D','L']
# 이동 계획을 하나씩 확인하기
for plan in plans:
# 이동 후 좌표 구하기
for i in range(len(move_types)): # move_types 요소 하나하나 보기
if plan == move_types[i]: # 계획이 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)
<풀이 과정>
- dx, dy, move_types 이동방향을 리스트에 넣어주고
- for문 돌면서 입력받은 이동계획을 하나씩 확인한다.
- 이중 for문으로 move_types의 요소 하나하나를 돌면서
- if연산으로 이동계획과 move_types[i] 위치값 인덱싱을 비교한다.
- 만약 그 둘이 같다면 nx 값을 기존 값 + dx[i] 위치값을 더해줌
ny 값도 더해줌- 그리고 nx와 ny값이 공간에서 벗어나면 무시하도록 한다.
if , continue 로 설정함- x와 y에 nx, ny를 넣어줌
- for문 밖에 최종 x, y 값을 print한다.
엘리스
알고리즘 시험을 대비해서 동빈나님이 올려주신 알고리즘 영상을 보며
익힐 예정이다. 느낀점은 앞으로 갈 길이 멀구나.. 혼자 풀 수 있을 정도로 반복해야겠다 생각했다.