링크: Summer/Winter Coding(~2018) > 방문 길이
def solution(dirs):
answer = 0
visited = set()
curPos = (0, 0)
direction = {"U": (0, 1), "L": (-1, 0), "D": (0, -1), "R": (1, 0)}
for command in dirs:
dx, dy = direction[command]
nextPos = curPos[0] + dx, curPos[1] + dy
if (-5 <= nextPos[0] <= 5) and (-5 <= nextPos[1] <= 5):
if (curPos, nextPos) not in visited:
visited.add((curPos, nextPos))
visited.add((nextPos, curPos))
answer += 1
curPos = nextPos
return answer
dictionary
로 만들었다.visited
를 set
으로 만들고 방문한 길인지 확인한다. (속도 향상)a->b
로가는 길은 b->a
로 가는 길과 동일하다. 따라서 두 방향을 모두 방문했다고 표시한다.answer
를 증가시킨다.