문제
3단계 문제라고 쫄았지만, 기본적인 dfs문제였다....
모든 노드를 반복하며 네트워크 순회를 위한 함수 dfs
를 실행한다.
dfs를 통해 방문한 노드들은 isVisited 배열을 통해 해당 노드에 방문했었는지를 저장하고, 해당 네트워크의 순회가 끝나면 answer에 1을 더해준다.
이 후 반복의 노드들 중 이미 방문되어있는 노드를 만나게 되면 이는 이미 어떠한 네트워크에 소속되어 있는 노드이므로 dfs를 실행하지 않고 계속해서 반복을 이
function solution(n, computers) {
const isVisited = [];
let answer = 0;
const dfs = (index) => {
isVisited[index] = true;
for (let i = 0; i < n; i++) {
if (computers[index][i] && !isVisited[i]) dfs(i)
}
};
for (let i = 0; i < n; i++) {
if (!isVisited[i]) {
dfs(i);
answer += 1;
}
}
return answer
}