def solution(dirs):
answer = 0
x,y = 0,0
visited = []
opposite_dir_dict = {'L':'R', 'R':'L', 'U':'D', 'D':'U'}
directions_dict = {'L':[-1,0], 'R':[1,0], 'U':[0,1], 'D':[0,-1]}
for d in dirs:
nx = x + directions_dict[d][0]
ny = y + directions_dict[d][1]
if -5<=nx<=5 and -5<=ny<=5:
if (d, nx, ny) not in visited or (opposite_dir_dict[d], x, y) not in visited:
visited.append((d,nx,ny))
visited.append((opposite_dir_dict[d], x, y))
answer += 1
x, y = nx, ny
return answer
🗝️keypoint
좌표가 아닌 경로에 대한 방문 여부를 확인해야한다.
경로는 (목적지, 방향), (출발지, 목적지) 등으로 표현할 수 있다.
if (d, nx, ny) not in vistied ~
if (x, y, nx, ny) not in vistied ~