알고리즘
[C++] 분리 집합( Disjoint Set )과 합집합 찾기( Union-Find ) 알고리즘
분리 집합( Disjoint Set )이란분리 집합이란 전체 집합의 원소들을 교집합이 없도록 분할한 부분 집합들을 말합니다. 예를 들면, SNS에서 A란 사람과 친구 관계를 가진 사람들 집합과, 아무런 관계가 없는 사람들 집합으로 나누면, 이 집합들이 분리 집합입니다. 이 집합들을 가지고 하고자 하는 것은, 두 원소를 선택했을 때, 이 두 원소가 같은 집합에 속하는지, 그렇지 않은지를 알고 싶은 것입니다. 이를 해결하는 가장 간단한 방법은 각 원소에, 그 원소가 속한 집합의 이름을 적어놓는 것입니다. 만약, 2와 5의 원소가 같은 집합 이름을 갖고 있다면, 두 원소는 같은 집합에 속해 있다는 것을 바로 알 수 있을 것입니다.이 경우엔, 2와 5는 같은 집합에 속해 있지 않습니다. 그런데, 분리 집합을 ..
2024. 7. 1.