Disjoint Sets는 다양한 알고리즘에 사용될 수 있다. 특히 무방향 그래프 내에서의 사이클을 판별할 때 사용될 수 있다. 참고로 방향그래프에서의 사이클 여부는 DFS를 이용해 판별할 수 있다. [ 동작 과정 ] 1. 각 간선을 확인하며 두 노드의 루트노드를 확인한다. 2. 루트노드가 서로 다르다면 두 노드에 대하여 union연산을 수행한다. 3. 루트노드가 서로 같다면 사이클이 발생한 것이다. 4. 그래프에 포함되어있는 모든 간선에 대하여 1~3과정을 반복한다. 만약 모든 간선이 처리될 때까지 사이클이 발생하지 않았다면 해당 그래프에서는 사이클이 없다라고 판단될 수 있다. # 특정 원소가 속한 집합을 찾기위해서 루트노드를 반환하는 find연산 def find_parent(parent, x): # ..