분류
- 그래프 알고리즘 (무향 그래프)
- 사이클 판단
알고리즘 코드
1 | def init_parent(parent, n): |
설명
서로소 집합 (Disjoint Sets)
공통 원소가 없는 두 집합을 의미한다.
서로소 집합을 표현하는 알고리즘
union
- 두 노드의 부모를 일치시킨다. (= 병합)
find
- 두 노드의 부모가 같은지 검사한다. (= 같은 집합인가?)
병합 절차
- Union (합집합) 연산을 확인하여, 서로 연결된 두 노드 A, B를 확인한다.
- A와 B의 루트 노드 A’, B’를 각각 찾는다.
- A’과 B’중 작은 인덱스로 연결해준다.
- 모든 Union (합집합) 연산을 처리할 때까지 1번 과정을 반복한다.
무향 그래프에서 사이클 판단
비방향성 그래프에서 어떤 두 개의 노드가 서로 같은 집합에 속한다는 뜻은 사이클이 존재한다는 의미이다.
따라서, 비방향성 그래프의 사이클 판단 여부에 사용된다.