반응형
유니온 파인드란?
말 그대로 union-find 알고리즘을 의미합니다.(주로 트리구조를 이용합니다.)
즉 집합-찾기 입니다.
같은 말로 disjoint-set이 있습니다.
사용 이유
1) 서로 다른 2개의 노드를 입력받아서 그 노드들을 합치거나,
2) find함수로 서로 다른 2개의 노드가 현재의 그래프에 속하는지 판별할 수 있습니다.
예제 코드
find 코드
public static int find(int x) {
if( x == result[x]) {
return x;
}
return result[x] = find(result[x]);
}
union 코드
public static void union(int x, int y) {
x = find(x);
y = find(y);
if( x != y ) {
result[x] = y;
}
}
p.s
같이 풀어보면 좋은 백준 문제 번호 : 10775
반응형
'공부 정리 > 알고리즘' 카테고리의 다른 글
[알고리즘] 누적합 prefix sum (0) | 2022.04.05 |
---|---|
[알고리즘] 다익스트라 알고리즘 (0) | 2022.02.25 |
[알고리즘] 에라토스테네스의 체 (0) | 2021.07.31 |
[알고리즘] 큐 queue (0) | 2021.03.14 |
[알고리즘] 스택 stack (0) | 2021.03.13 |
댓글