[프로그래머스] Lv3. 가장 먼 노드- JavaScript

이상돈·2023년 5월 7일
0
post-thumbnail

문제분류 : 코팅테스트 연습

난이도 : Level 3

출처 : 프로그래머스 - 가장 먼 노드

문제

제한사항

📌 내가 생각한 풀이

BFS를 이용하여, depth와 value를 obj객체에 넣어 저장해주자. 그런다음, depth가 가장 큰 객체속 배열의 length를 리턴해주자.
function solution(n, edge) {
    var answer = 0;
    let graph = {};
    edge.forEach((data,idx)=>{
        let [a,b] = data;
        if(graph[a] === undefined) graph[a] = [b];
        else graph[a] = [...graph[a], b];
        if(graph[b] === undefined) graph[b] = [a];
        else graph[b] = [...graph[b], a];
    })
    let queue = [1];
    let visited = [];
    let count = 0;
    let obj ={};
    while(queue.length){
        let size = queue.length;
        for(var i =0; i<size; i++){
            let popped = queue.shift();
            if(!visited.includes(popped)){
                visited.push(popped);
                queue.push(...graph[popped]);
                if(obj[count] === undefined){
                    obj[count] = [popped]
                }else{
                    obj[count] = [...obj[count], popped];
                }
            }
        }
        count++;
    }
    let max = Object.keys(obj).sort((a,b)=> b-a)[0];
    return obj[max].length
}

📌 느낀점

예전부터 그래프만 보면, 약하다고 생각하고, 겁을 먹었다. 하지만 많은 그래프 문제를 풀어보고, 약간의 자신감이 생겨, 풀었더니, 정답이었다. 그래프 문제 유형은 비슷하게 나온다는 것을 잊지말고 명심해서 풀자!

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글