문제
백준 1727
설명
편의상 남자의 수가 더 많다고 하자.
여자와 남자를 성격에 따라 정렬을 하여 순서대로 매칭 시키고, 최적이 되도록 여자들이 매칭된 남성의 인덱스를 증가시켜보자.
여자가 인덱스를 증가시켜야 하는 경우는 두가지이다.
- 인덱스를 증가시킬 공간이 있어야 한다. 원래부터 빈자리가 있거나 바로 다음 여성이 인덱스를 옮기면 공간이 생긴다. 이는 마지막 여성부터 자리를 옮겨나가면 간단하게 해결할 수 있다.
- 인덱스를 증가시킬 경우 성격차이가 줄어들어야 한다. 이때 손해를 보더라도 공간을 만들어 이전 여성들이 움직일 수 있게 하여 총 이득이 증가하는 경우를 고려해야한다. 이는 누적합을 이용하면 해결할 수 있다.
위 방법으로 전체 여성에 걸쳐서 한칸씩 움직이면 결국 최적이 도달한다. 다시말해 그리디전략이 성립한다. 왜 그런지는 증명은…
시간 복잡도
O(\(\mathrm{N}\mathrm{M}\))
코드
댓글남기기