알고리즘/문제풀이
[2606] 바이러스
BSHwan
2019. 9. 24. 23:03
반응형
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
static ArrayList<Integer>[] list;
static boolean[] visited;
static int answer;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
list = new ArrayList[N+1];
visited = new boolean[N+1];
for(int i=0; i<=N; i++) {
list[i] = new ArrayList<Integer>();
}
for(int i=0; i<M; i++) {
int A = sc.nextInt();
int B = sc.nextInt();
list[A].add(B);
list[B].add(A);
}
DFS(1);
System.out.println(answer);
}
public static void DFS(int x) {
visited[x] = true;
for(int i=0; i<list[x].size(); i++) {
int next = list[x].get(i);
if(!visited[next]) {
DFS(next);
answer++;
}
}
}
}
반응형