function solution(n, computers) {
// 방문 여부를 나타내는 배열 초기화
let visited = Array(n).fill(false);
// 네트워크의 개수를 저장할 변수 초기화
let answer = 0;
// 깊이 우선 탐색(DFS) 함수 정의
function dfs(i) {
// 현재 노드를 방문했음을 표시
visited[i] = true;
// 현재 노드와 연결된 다른 노드들을 확인
for (let j = 0; j < computers[i].length; j++) {
// 현재 노드와 연결되어 있고, 아직 방문하지 않은 노드라면 재귀적으로 방문
if (computers[i][j] === 1 && !visited[j]) {
dfs(j);
}
}
}
// 모든 노드에 대해 방문 여부를 확인하면서 네트워크의 개수 카운트
for (let i = 0; i < computers.length; i++) {
// 아직 방문하지 않은 노드라면 해당 노드에서 DFS 수행
if (!visited[i]) {
dfs(i);
// 한 번의 DFS가 끝나면 해당 네트워크 탐색 완료, 네트워크 개수 증가
answer++;
}
}
// 최종적인 네트워크의 개수 반환
return answer;
}