function solution(n, computers) {
let answer = 0;
let check = Array.from({length: computers.length},() => 0);
function dfs(index) {
check[index] = 1;
for(let i = 0; i <computers[index].length; i++) {
if(computers[index][i] == 1 && !check[i]) {
dfs(i);
}
}
}
for (let i = 0; i < computers.length; i++) {
if(!check[i]) {
dfs(i)
answer++;
}
}
return answer;
}
각 컴퓨터의 check 상태를 모두 0으로 둔다.
체크한 컴퓨터가 아닐 시 네트워크 개수를 하나 추가 하고
그 컴퓨터의 체크상태를 1로 만든다.(dfs함수 실행)
컴퓨터 와 연결된 다른 컴퓨터를 찾기 위해 반복문을 돌리고
연결된 컴퓨터를 찾으면 그 컴퓨터의 check 상태를 1로 만들고 반복문을 돌려 연결된 다른 컴퓨터를 찾는 과정을 반복한다.(dfs함수 재귀)