728x90
import java.util.*;
public class Main {
static int map[][];
static boolean visit[];
static int N, M;
static int virus;
public static void dfs(int v) {
visit[v] = true;
for(int i = 1; i <= N; i++) {
if(map[v][i] == 1 && !visit[i]) {
dfs(i);
virus++; //1번 컴퓨터는 세면 안됨 - 1번을 통해 감염된 것만
}
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
N = scan.nextInt();
M = scan.nextInt();
map = new int[N+1][N+1];
visit = new boolean[N+1];
for(int i = 0; i < M; i++) {
int x = scan.nextInt();
int y = scan.nextInt();
map[x][y] = map[y][x] = 1;
}
dfs(1);
System.out.println(virus);
scan.close();
}
}
728x90
'CS > Algorithm' 카테고리의 다른 글
[백준 10830] 행렬제곱 - java (0) | 2021.05.09 |
---|---|
[백준:1697] 숨바꼭질 - JAVA (0) | 2021.05.03 |
[백준:2178] 미로탐색 - JAVA (0) | 2021.05.02 |
[백준:2667] 단지번호 붙이기 - JAVA (0) | 2021.05.02 |
[백준:1260번] DFS와 BFS - JAVA (0) | 2021.05.02 |