function solution(dirs) {
// 길의 방향을 저장해둘 변수(중복을 제거 -> Set)
let answer = new Set();
let [y, x] = [0, 0];
let dir = { U : [-1, 0], D : [1,0], L : [0,-1], R : [0,1] };
for(let i of dirs){
let dy = y + dir[i][0];
let dx = x + dir[i][1];
if(dy<-5 || dy>5 || dx<-5 || dx>5) continue;
// Set 함수는 add로 값을 넣음
// 1번에서 2번으로 가는 경로와 2번에서 1번으로 가는 경로는 같기 때문에
// 두개 다 추가하기
answer.add(""+y+x+dy+dx);
answer.add(""+dy+dx+y+x);
y = dy;
x = dx;
}
return answer.size/2;
}
* 이 문제를 통해서는 기존 dfs나 bfs 등에 쓰이는 dir 방향을 해시를 이용해 편하게 가져올 수 있다는 점을 한번 더 깨달았습니다.
그리고 처음엔 visited를 이용하였는데, 문제점이 있었습니다.
고민이 좀 처럼 해결되지 않아 검색 중 Set을 이용한 좋은 방법이 있었습니다.
Set을 평소에 잘 쓰지 않아서 유용함에도 불구하고 고려해보지 못해서 조금 아쉬운 문제입니다.