1) dirs 순회 (for문)
2) 현재 점에서 움직일 방향의 값을 더해, 다음 점 생성
3) 다음 점의 x, y가 -5이상이고 5이하이면 set()으로 된 stack에 추가
4) for문이 끝나면 stack의 길이를 이등분하여 리턴한다.
def solution(dirs):
directions = {'U': (0, 1), 'D': (0, -1), 'R': (1, 0), 'L': (-1, 0)}
curr_x, curr_y = (0, 0)
stack = set()
for d in dirs:
next_x, next_y = curr_x + directions[d][0], curr_y + directions[d][1]
if -5 <= next_x <= 5 and -5 <= next_y <= 5:
stack.add((curr_x, curr_y, next_x, next_y))
stack.add((next_x, next_y, curr_x, curr_y))
curr_x, curr_y = next_x, next_y
return len(stack) // 2