새소식

Programmers

[Programmers] 방문 길이 문제 - (javascript)

  • -
728x90
문제 이름 :  방문 길이

 

<<< 문제 내용 >>>

 

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을 평소에 잘 쓰지 않아서 유용함에도 불구하고 고려해보지 못해서 조금 아쉬운 문제입니다.

 

 

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.