[백준 - JAVA] DFS - Silver 3 바이러스
import java.io.*;
import java.util.*;
public class BOJ_2606 {
static int C;
static int N;
static void func(int n, int[] arr1, int[] arr2, boolean[] isVirus ){
isVirus[n] = true;
for(int i = 0 ; i < N; i++) {
if(arr1[i] == n && isVirus[arr2[i]] == false) {
func(arr2[i], arr1, arr2, isVirus);
} else if(arr2[i] == n && isVirus[arr1[i]] == false) {
func(arr1[i], arr1, arr2, isVirus);
}
}
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
C = Integer.parseInt(in.readLine());
N = Integer.parseInt(in.readLine());
int[] arr1 = new int[N];
int[] arr2 = new int[N];
boolean[] isVirus = new boolean[C + 1];
for(int i = 0 ; i < N; i++) {
st = new StringTokenizer(in.readLine());
arr1[i] = Integer.parseInt(st.nextToken());
arr2[i] = Integer.parseInt(st.nextToken());
}
func(1, arr1, arr2, isVirus);
int count = 0;
for(int i = 1 ; i <= C ;i++) {
if(isVirus[i] == true)
count++;
}
System.out.println(count - 1);
}
}