연결된 컴퓨터를 따라가다가 네트워크 하나를 모두 탐색하면 종료
public class NUM43162 {
public static void main(String[] args) {
int n = 3;
int[][] computers = {{1, 1, 0},{1, 1, 1},{0, 1, 1}};
System.out.println(solution(n, computers));
}
public static int solution(int n, int[][] computers) {
int answer = 0;
boolean[] check = new boolean[n];
for (int pcIndex = 0; pcIndex < n; pcIndex++) {
if (!check[pcIndex]) {
depthFirstSearch(computers, pcIndex, check);
answer++;
}
}
return answer;
}
static void depthFirstSearch(int[][] computers, int pcIndex, boolean[] check) {
check[pcIndex] = true;
for (int i = 0; i < computers.length; i++) {
if (pcIndex != i && computers[pcIndex][i] == 1 && check[i] == false)
depthFirstSearch(computers, i, check);
}
}
}
*다른 분들의 코드를 참고하여 작성했습니다