diff --git "a/JHLEE325/202507/26 BOJ G5 \354\247\221\355\225\251\354\235\230 \355\221\234\355\230\204.md" "b/JHLEE325/202507/26 BOJ G5 \354\247\221\355\225\251\354\235\230 \355\221\234\355\230\204.md" new file mode 100644 index 00000000..76ae967f --- /dev/null +++ "b/JHLEE325/202507/26 BOJ G5 \354\247\221\355\225\251\354\235\230 \355\221\234\355\230\204.md" @@ -0,0 +1,57 @@ +```java +import java.util.*; +import java.io.*; + +public class Main { + static int[] parent; + static int n, m; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + StringBuilder sb = new StringBuilder(); + + n = Integer.parseInt(st.nextToken()); + m = Integer.parseInt(st.nextToken()); + + parent = new int[n + 1]; + + for (int i = 0; i < n + 1; i++) { + parent[i] = i; + } + + for (int i = 0; i < m; i++) { + st = new StringTokenizer(br.readLine()); + int op = Integer.parseInt(st.nextToken()); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + + if (op == 0) + union(a, b); + else { + if (find(a) == find(b)) + sb.append("YES\n"); + else sb.append("NO\n"); + } + } + + System.out.println(sb.toString()); + } + + static int find(int x) { + if (x != parent[x]) { + parent[x] = find(parent[x]); + } + return parent[x]; + } + + static void union(int a, int b) { + int ra = find(a); + int rb = find(b); + if (ra != rb) { + parent[rb] = ra; + } + } +} + +```