Skip to content

문제 8 · 동치 클래스를 하나로 합치기

문제 8 [2점]

N개의 서로 다른 동치 클래스equivalence class가 주어졌을 때, 이들이 전부 하나의 동치 클래스로 속하도록 하는 동치 관계는 최소 몇 개가 필요한지 서술하시오.

풀이 및 해설

N1 개

이유

N개의 서로 다른 동치 클래스를 각각 하나의 "덩어리(집합)"로 보고, 두 원소가 동치 관계임을 선언하는 것을 두 덩어리를 합치는 합집합(union) 연산으로 생각하자. 서로소 집합(union-find)의 관점이다.

  • 처음에는 N개의 분리된 집합이 있다.
  • 관계 하나(=union 한 번)를 선언하면, 서로 다른 두 집합을 합칠 때마다 집합의 개수가 정확히 1 감소한다.
  • 집합의 개수를 N에서 1로 줄이려면 개수를 총 N1 만큼 감소시켜야 하므로, 서로 다른 두 클래스를 잇는 의미 있는 관계가 최소 N1 필요하다.

이는 N개의 정점을 하나로 연결하는 트리(신장 트리)의 간선 수가 N1 이라는 사실과 정확히 대응한다. (반사·대칭·추이 성질로 자동 유도되는 관계는 이 개수에 세지 않는다.)

PDF