뭔가 BFS, DFS 도 그렇고
n * m 판에서 움직이는 경우가
코드로 구현했을때 거의 틀이 있는 것 같다.
입력예시)
5
R R R U D D
출력예시 )
3 4
대충 정리하면
이렇게 움직였을때 바둑판 어디에 위치하는지 출력해야한다.
바둑판 범위를 벗어나서는 안된다
코드
n = int(input())
moves = input().split()
dx = [-1, 1, 0, 0]
dy = [0, 0, 1, -1]
move_types = ['L', 'R', 'U', 'D']
final_x, final_y = 1, 1
for move in moves :
# LRUD 중 뭐인지 찾기
for i in range(4) :
if move == move_types[i] : #찾으면 그렇게 움직였을때 위치 임시저장
tmp_x = final_x + dx[i]
tmp_y = final_y + dy[i]
# 임시 저장해둔 위치가 조건(공간을 벗어나는지) 확인하고,
# 벗어난 경우에는 그냥 임시 위치로만 남는다
if tmp_x < 1 or tmp_y < 1 or tmp_x > n or tmp_y > n :
continue
# 벗어나지 않은 경우는 final 위치로 업데이트 시킨다.
final_x, final_y = tmp_x, tmp_y
print(final_x, final_y)
거의 이 틀 안에서 움직이니까 걍 외우자(?!)!!