def solution(dirs):
answer=''
move = {'U': (0, 1), 'D': (0, -1), 'R': (1, 0), 'L': (-1, 0)}
visited = set()
x, y = 0, 0
for command in dirs:
dx, dy = move[command]
nx, ny = x + dx, y + dy
if nx<-5:
nx=-5
elif ny<-5:
ny=-5
elif nx>5:
nx=5
elif ny>5:
ny=5
go = (x, y, nx, ny)
back=(nx, ny,x, y)
x, y = nx, ny # move position
if go[0]==go[2] and go[1]==go[3]:
continue
else:
visited.add(go)
if back in visited:
visited.remove(back)
return len(visited)
출처: 프로그래머스