Skip to content

Commit dfbcde9

Browse files
authored
Create 26 BOJ G5 집합의 표현.md
1 parent 31cd8ca commit dfbcde9

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
```java
2+
import java.util.*;
3+
import java.io.*;
4+
5+
public class Main {
6+
static int[] parent;
7+
static int n, m;
8+
9+
public static void main(String[] args) throws Exception {
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
StringTokenizer st = new StringTokenizer(br.readLine());
12+
StringBuilder sb = new StringBuilder();
13+
14+
n = Integer.parseInt(st.nextToken());
15+
m = Integer.parseInt(st.nextToken());
16+
17+
parent = new int[n + 1];
18+
19+
for (int i = 0; i < n + 1; i++) {
20+
parent[i] = i;
21+
}
22+
23+
for (int i = 0; i < m; i++) {
24+
st = new StringTokenizer(br.readLine());
25+
int op = Integer.parseInt(st.nextToken());
26+
int a = Integer.parseInt(st.nextToken());
27+
int b = Integer.parseInt(st.nextToken());
28+
29+
if (op == 0)
30+
union(a, b);
31+
else {
32+
if (find(a) == find(b))
33+
sb.append("YES\n");
34+
else sb.append("NO\n");
35+
}
36+
}
37+
38+
System.out.println(sb.toString());
39+
}
40+
41+
static int find(int x) {
42+
if (x != parent[x]) {
43+
parent[x] = find(parent[x]);
44+
}
45+
return parent[x];
46+
}
47+
48+
static void union(int a, int b) {
49+
int ra = find(a);
50+
int rb = find(b);
51+
if (ra != rb) {
52+
parent[rb] = ra;
53+
}
54+
}
55+
}
56+
```

0 commit comments

Comments
 (0)