https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
dfs 활용
import java.util.Scanner;
class Main {
static int n, v, count;
static int[][] arr, map;
static boolean[] visited;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
v = sc.nextInt();
count = 0;
arr = new int[v][2];
map = new int[n + 1][n + 1];
visited = new boolean[n+1];
for (int i = 0; i < v; i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
for (int i = 0; i < v; i++) {
int x = arr[i][0];
int y = arr[i][1];
map[x][y] = 1;
map[y][x] = 1;
}
dfs(1);
System.out.println(count);
}
public static void dfs(int i) {
visited[i] = true;//1
for (int j = 1; j < n+1; j++) {
if(!visited[j] && map[i][j]==1) {
count++;
dfs(j);
}
}
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[백준] 감시피하기 java 18428번 (0) | 2023.02.08 |
---|---|
[백준] 13904 과제 java (0) | 2022.10.05 |
[백준] 마법사 상어와 비바라기 java 21610번 (0) | 2022.04.05 |
[백준] 2003 수들의 합2 java (0) | 2021.06.28 |
[백준] 구간 합 구하기 4 java (0) | 2021.06.28 |