[프로그래머스 Lv.2] 알고리즘 고득점 Kit 완전탐색 - 전력망을 둘로 나누기

김민지·2024년 4월 28일
0

✨ 정답 ✨

function solution(n, wires) {
    var answer = Number.MAX_SAFE_INTEGER;
    // 그래프 만들기
    let tree= Array.from(Array(n+1),()=>[] );
    wires.map((element)=>{
        let [a,b]=element;
        tree[a].push(b);
        tree[b].push(a);
    })
    
    // BFS로 송전탑 개수 세기(parameter:루트,끊을 부분)
    const searchTree=(root, excludeNumber)=>{
        let count=0;
        let visit=[];
        let queue=[root];
        visit[root]=true;
        while(queue.length>0){
            let index = queue.pop();
            tree[index].forEach((el)=>{
                if (el!==excludeNumber&&visit[el]!==true){
                    visit[el]=true;
                    queue.push(el);
                }
            })
            count+=1;
        }
        return count;
    }
    wires.forEach((el) => {
        let [a, b] = el;
        answer = Math.min(answer, Math.abs(searchTree(a, b) - searchTree(b, a)));
    });
    return answer;
}

🧵 참고한 정답지 🧵

💡💡 해설 💡💡

내 코드 설명

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보