def solution(dirs):
direction = {'U': (0, 1), 'D': (0, -1), 'R': (1, 0), 'L': (-1, 0)}
x, y = 0, 0
answer = set()
for d in dirs:
x2, y2 = x + direction[d][0], y + direction[d][1]
if x2>=-5 and x2<=5 and y2>=-5 and y2<=5:
if x==x2: answer.add((x2, min(y, y2), x, max(y, y2)))
elif y==y2: answer.add((min(x, x2), y, max(x, x2), y2))
x, y = x2, y2
return len(answer)
앞의 튜플을 뒤집어서 비교하는 방법을 사용하려 했는데
집합으로 묶어 중복이 제거되어도 왔던 길을 다시 가는 경우가 8가지
튜플 내에서의 정렬을 통해 중복 제거
이동할 때 x나 y 둘 중 하나는 변하지 않는다는 점을 이용
x와 x2가 일치하면 y와 y2를 크기순으로 정렬
y와 y2가 일치하면 x와 x2를 크기순으로 정렬