def solution(dirs):
answer = 0
num = {'U':(0,1),'D':(0,-1),'R':(1,0),'L':(-1,0)}
res={}
visited = set()
x, y = 0, 0
for i in dirs:
nx, ny = x + num[i][0], y + num[i][1]
if -5 <= nx <= 5 and -5 <= ny <= 5:
if ((x, y), (nx, ny)) not in visited:
answer += 1
visited.add(((x, y), (nx, ny)))
visited.add(((nx, ny), (x, y)))
x, y = nx, ny
return answer
풀이
중복을 제외하고 방문한 선분을 체크하기
입력받는 문자열에 따라 이동하는 좌표값 딕셔너리를 구현.
입력에 따라서 x,y를 움직인다. -5 ~ 5의 범위는 넘어가면 continue 해준다,
set()에 이동좌표를 넣어서 만약 그 좌표가 존재하지 않으면 answer+=1해주고, 존재하면 중복한 값이라고 판단하고 넘어간다.