// 네트워크 - 깊이/너비 우선 탐색(DFS/BFS)
public class Network {
static boolean visit[]; // visit 전역변수 선언
public int solution(int n, int[][] computers) {
int answer = 0;
visit = new boolean[n];
for (int i = 0; i < visit.length; i++) {
if (!visit[i]) {
answer++; // 탐색 시 끊어져 있으면 answer를 증가
dfs_r(n, computers, i);
}
}
return answer;
}
// DFS RECURSIVE
private void dfs_r(int n, int[][] computers, int s) {
visit[s] = true;
for (int i = 0; i < n; i++) {
if (computers[s][i] == 1 && !visit[i]) {
dfs_r(n, computers, i);
}
}
}
}