문제 이름 : 네트워크
<<< 문제 내용 >>>
function solution(n, c) {
var answer = 0;
let dic = Array.from(Array(n), () => new Array(0));
for(let i=0; i<n; i++){
for(let j=i+1; j<n; j++){
if(c[i][j] === 1){
dic[i].push(j);
dic[j].push(i);
}
}
}
let visited = new Array(n).fill(false);
const bfs = (idx) => {
let queue = [idx];
visited[idx] = true;
while(queue.length){
idx = queue.shift();
while(dic[idx].length){
let temp = dic[idx].shift();
if(!visited[temp]){
queue.push(temp);
visited[temp]=true;
}
}
}
}
for(let i=0; i<n; i++){
if(!visited[i]){
bfs(i);
answer++;
}
}
return answer;
}
1. graph에서 bfs를 사용한다.
2. 방문되지 않은 노드만 bfs를 실행한다.
3. 그때 갯수를 올려주면 끝
도움이 되셨다면 공감 부탁드립니다.