말랑한 하루

[Programmers] 가장 먼 노드 (Lv 3, JavaScript) 본문

문제풀이/Programmers

[Programmers] 가장 먼 노드 (Lv 3, JavaScript)

지수는말랑이 2022. 12. 17. 18:12
반응형

[ 학습 내용 ]

filter() 내부에 Math연산을 추가하는 경우 상당한 메모리를 잡아먹는다.


[ 소스 코드 ]

function solution(n, edge) {
    let answer = 0;
    let load = new Array(n);
    let temp = n;
    
    while(temp-- > 0) {
        load[temp] = new Array();
    }
    
    edge.forEach((edge) => {
        load[edge[0] -1].push(edge[1] -1);
        load[edge[1] -1].push(edge[0] -1);
    });
    
    let queue = [{idx: 0, cnt: 0}];
    let node = new Array(n).fill(2147483647);
    node[0] = 0;
    while(queue.length) {
        let out = queue.shift();
        for(let i=0; i<load[out.idx].length; i++) {
            let next = load[out.idx][i];
            let ncnt = out.cnt + 1;
            if (node[next] > ncnt) {
                node[next] = ncnt;
                queue.push({idx: next, cnt: ncnt});
            }
        }
    }
    let max = Math.max(...node);
    return node.filter(n => n === max).length;
}
반응형
Comments