본문 바로가기
Algorithm/문제풀이

[프로그래머스] 가장 먼 노드(LV.3) by javascript - 그래프

by 썸머워즈 2022. 4. 12.
반응형

▷ 문제 : 그래프 - 가장 먼 노드 LV.3

 

코딩테스트 연습 - 가장 먼 노드

6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3

programmers.co.kr

▷ 해결 날짜 : 2022.04.12
▷ 소요 시간 : 30분
▷ 풀이 과정 :

그래프 모양이 주어지고, 1번 노드부터 시작해서 가장 멀리 떨어진 노드의 개수를 구하는 문제이다.

그래프를 우선 그리고, 방문 체크 겸 거리를 저장할 배열을 만들어두고 탐색을 구현하였다.

 

▷ 구현

function solution(n, edge) {
    const graph = Array.from(Array(n + 1), () => []);
    for (const [from, to] of edge){
        graph[from].push(to);
        graph[to].push(from);
    }
    const distance = Array(n + 1).fill(0).fill(1, 0, 2);
    const needVisit = [1];
    while(needVisit.length){
        const cur = needVisit.shift();
        for(const node of graph[cur]){
            if(!distance[node]){
                distance[node] = distance[cur] + 1;
                needVisit.push(node);
            }
        }
    }

    const max = Math.max(...distance);
    return distance.filter(e => e == max).length;
}


▷ 복기 :

뭔가 그래프 관련해서는 응용력이 좀 떨어지는것같다.

반응형


댓글

TOP