728x90
https://www.acmicpc.net/problem/1717
메모리: 53,188 KB , 시간: 332 ms
사용 알고리즘: 유니온-파인드
728x90
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int[] parent;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
parent = new int[n + 1];
for (int i = 1; i <= n; i++) {
parent[i] = i;
}
StringBuilder result = new StringBuilder();
int p, a, b;
for (int i = 0; i < m; i++) {
st = new StringTokenizer(br.readLine());
p = Integer.parseInt(st.nextToken());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
if (p == 0) {
union(a, b);
} else {
a = find(a);
b = find(b);
if(a == b) result.append("YES\n");
else result.append("NO\n");
}
}
System.out.print(result);
}
static private void union(int a, int b) {
a = find(a);
b = find(b);
if(a < b) parent[b] = a;
else parent[a] = b;
}
static private int find(int num) {
if(parent[num] == num) return num;
return parent[num] = find(parent[num]);
}
}728x90
'Problem Solving > BOJ' 카테고리의 다른 글
| [백준, BOJ 14425] 문자열 집합 (java) (0) | 2026.01.04 |
|---|---|
| [백준, BOJ 7682] 틱택토 (java) (0) | 2026.01.02 |
| [백준, BOJ 2166] 다각형의 면적 (java) (0) | 2025.12.10 |
| [백준, BOJ 16967] 배열 복원하기 (java) (0) | 2025.12.09 |
| [백준, BOJ 1072] 게임 (java) (0) | 2025.12.07 |