Algorithm/Study
2021. 9. 24.
그래프 이론 : 서로소 집합을 활용한 사이클 판별
서로소 집합을 활용한 사이클 판별 - 무방향 그래프 내에서의 사이클을 판별할 때 사용 - 방향 그래프는 dfs를 이용하여 판별 - 동작 과정 1. 각 간선을 확인하며 두 노드의 루트 노드를 확인한다. 1-1. 루트 노드가 서로 다르다면 두 노드에 대하여 union 연산을 수행한다. 1-2. 루트 노드가 서로 같다면 사이클이 발생한 것이다. 2. 그래프에 포함되어 있는 모든 간선에 대하여 1번 과정을 반복한다. (union 연산 : a가 속한 집합, b가 속한 집합 중 루트 원소 값이 더 작은 것으로 부모를 통일하는 연산) - 코드 # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x): # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] ..