Skip to content

Commit 8f10649

Browse files
Merge pull request #256 from Coding-Crew-Forever/hh830/algorithm
[2025년 8월 셋째주 / hh830] 그래프 이론
2 parents 287652d + 0e12a59 commit 8f10649

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

hh830/BOJ_9372.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class BOJ_9372 {
5+
private static List<List<Integer>> graph;
6+
private static boolean[] visited;
7+
private static int count;
8+
9+
public static void main(String[] args) throws IOException {
10+
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
11+
StringBuilder stringBuilder = new StringBuilder();
12+
13+
int T = Integer.parseInt(bufferedReader.readLine());
14+
15+
while (T > 0) {
16+
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
17+
int N = Integer.parseInt(stringTokenizer.nextToken());
18+
int M = Integer.parseInt(stringTokenizer.nextToken());
19+
20+
graph = new ArrayList<>();
21+
22+
for (int i = 0; i <= N; i++) {
23+
graph.add(new ArrayList<>());
24+
}
25+
visited = new boolean[N + 1];
26+
count = 0;
27+
28+
for (int i = 0; i < M; i++) {
29+
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
30+
int a = Integer.parseInt(stringTokenizer.nextToken());
31+
int b = Integer.parseInt(stringTokenizer.nextToken());
32+
33+
graph.get(a).add(b);
34+
graph.get(b).add(a);
35+
}
36+
37+
dfs(1);
38+
39+
stringBuilder.append(count).append("\n");
40+
41+
T--;
42+
}
43+
44+
System.out.print(stringBuilder);
45+
}
46+
47+
private static void dfs(int node) {
48+
visited[node] = true;
49+
for (int next : graph.get(node)) {
50+
if (!visited[next]) {
51+
count++;
52+
dfs(next);
53+
}
54+
}
55+
}
56+
}

0 commit comments

Comments
 (0)