https://school.programmers.co.kr/learn/courses/30/lessons/43162
answer 증가class Solution {
public int solution(int n, int[][] computers) {
int answer = 0;
boolean[] visited = new boolean[n];
for (int i = 0; i < n; i++) {
if (!visited[i]) { // i번째 컴퓨터가 방문되지 않았다면
dfs(computers, visited, i); // 해당 컴퓨터에서 DFS 수행
answer++; // 네트워크 수 증가
}
}
return answer;
}
public void dfs(int[][] computers, boolean[] visited, int i) {
visited[i] = true; // 현재 컴퓨터를 방문한 것으로 표시
for (int j = 0; j < computers.length; j++) {
if (!visited[j] && computers[i][j] == 1) { // j번째 컴퓨터가 방문되지 않았고, i와 연결되어 있다면
dfs(computers, visited, j); // j번째 컴퓨터에서 재귀적으로 DFS 수행
}
}
}
}