[Algorithm] 이분 매칭 (Bipartite Matching)
이분 매칭 A 집단이 B 집단을 선탁하는 방법에 대한 알고리즘 즉, 2개의 정점 그룹이 있을 때, 그룹에서 그룹으로 정점의 최대 매칭을 찾는 알고리즘이다. 위와 같은 두 그룹의 정점이 있을 때 각 그룹을 연결할 수 있는 간선의 정보는 아래와 같다. A : 2, 5 B : 2, 3, 4 C : 1, 5 D: 1, 2, 5 E : 2 이 정보를 가지고 정점을 한 번만 사용해서 최대한 많은 정점이 매칭되게 해보자. DFS와 visted 배열을 활용하여 구해준다. 우선 A가 매칭가능한 번호 중 빠른 번호인 2를 매칭 시켜준다. 이후 B를 매칭 시켜주는데 B가 연결할 수 있는 가장 빠른 번호도 2이므로 A로 돌아가 매칭 시킬 수 있는 다른 정점이 있는지 살펴본 후 존재한다면 A가 양보해준다. 따라서, A - 5,..
2023.08.09