- 문제 설명
게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다.
U: 위쪽으로 한 칸 가기
D: 아래쪽으로 한 칸 가기
R: 오른쪽으로 한 칸 가기
L: 왼쪽으로 한 칸 가기
캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다.
- 제한 사항
- 입출력 예
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
문제의 예시와 같습니다.
- 접근법
구현 시 중요하게 생각해야될 부분은 중복된 경로는 포함하지 않는다.
그리고 5X5크기에 좌표판 안에서만 움직여야하며 좌표를 넘어서는 경우는
제외한다는 부분이다.
def solution(dirs):
move = {'U' : (0, 1), 'D' : (0, -1), 'L' : (-1, 0), 'R' : (1, 0)}
visited = set()
x, y = 0, 0
for command in dirs:
dx, dy = move[command]
nx, ny = x + dx, y + dy
if -5 <= nx <= 5 and -5 <= ny <= 5:
visited.add((x, y, nx, ny))
visited.add((nx, ny, x, y))
x, y = nx, ny
return len(visited) // 2