Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 상속
- python
- 최소신장트리
- 추상화
- abstract
- 내부 클래스
- 프림알고리즘
- 캡슐화
- enum
- polymorphism
- Scanner
- 추상 클래스
- nextInt
- 다형성
- 생성자
- 17472
- inheritance
- 버퍼비우기
- this
- Encapsulation
- 인터페이스
- Final
- java
- 열거형
- 와일드카드
- 객체 지향
- 객체지향
- 백준
- 제네릭
Archives
- Today
- Total
쫑쫑이의 블로그
백준 1717 집합의 표현 Java [분리집합, Union find] 본문
https://www.acmicpc.net/problem/1717
서로 같은 집합에 속해 있는지 확인하기 위해 모든 원소 값들을 자기 자신을 부모로 설정한다
입력값의 가장 첫 값이 0이면 a의 부모에 b의 부모를 넣거나
b의 부모에 a의 부모를 넣는다 (둘 중에 한가지만 일관되게 사용)
1이면 a의 부모와 b의 부모가 같은지 확인한다
여기서 설명하는 부모는 가장 최상위에 자기 자신을 부모로 하는 원소이다
import java.io.*;
import java.util.*;
public class Main {
static int[] parents;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
parents = new int[N + 1];
for (int n = 1; n <= N; n++) {
parents[n] = n;
}
for (int m = 0; m < M; m++) {
st = new StringTokenizer(br.readLine());
int k = Integer.parseInt(st.nextToken());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
if (k == 0) {
union(a, b);
} else {
sb.append(findParent(a) == findParent(b) ? "YES" : "NO").append("\n");
}
}
System.out.println(sb);
}
static int findParent(int x) {
if (x == parents[x]) return x;
return parents[x] = findParent(parents[x]);
}
static void union(int x, int y) {
int px = findParent(x);
int py = findParent(y);
if (px != py) parents[py] = px;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 11085 군사 이동 Java [분리집합 Union find] (0) | 2022.11.24 |
---|---|
백준 1976 여행 가자 Java [분리집합, Union find] (0) | 2022.11.23 |
백준 10986 나머지 합 Java [누적합] (0) | 2022.11.21 |
백준 1655 가운데를 말해요 Java [우선순위 큐] (0) | 2022.11.20 |
백준 17425 약수의 합 Java [에라토스테네스의 체, 누적합] (0) | 2022.11.19 |