반응형
▷ 문제 : 깊이/너비 우선 탐색(DFS/BFS) - 네트워크 LV.3
▷ 해결 날짜 : 2022.04.08
▷ 소요 시간 : 50분
▷ 풀이 과정 :
문제 자체에 이미 연결 정보가 주어져 그걸 가지고 서로 연결되어있는 집단의 개수가 총 몇 개인지 출력하는 문제이다.나름 구조가 평범한 그래프 탐색 알고리즘 문제와 비슷해서 생각보다 쉽게 풀었다.
좀 강박관념일수도 있는데, 사용하기 쉽게 그래프를 다시 한번 그리고 그걸 가지고 알고리즘을 실행시켜 구현하였다.
▷ 구현
function solution(n, computers) {
const graph = [];
computers.forEach(networks => {
const data = [];
networks.forEach((network, idx) => {
if(network) data.push(idx);
});
graph.push(data);
});
const visit = [];
let answer = 0;
for(let i = 0; i < n ; i++){
if(!visit.includes(i)) answer++;
let needVisit = graph[i];
while(needVisit.length){
const node = needVisit.shift();
if(!visit.includes(node)){
visit.push(node);
needVisit = [...needVisit, ...graph[node]];
}
}
}
return answer;
}
▷ 복기 :
구현하고 보니까 이미 매개변수로 연결정보가 다 들어가는데, 그걸 가지고 다시 그래프를 그릴 필요가 있었나 싶다.
반응형
댓글