joseph0528   3년 전

자신과 친한친구이면서 이성인 친구를 배열에 넣어주고 이분매칭을 사용했는데 계속 8%에서 틀렸다고 나옵니다;; 뭐가 문제일까요..

byeongkeunahn   3년 전

1. https://blog.naver.com/ndb796/...의 코드와 비슷한 방식으로 보이는데, 이때는 그래프를 다루는 방식이 일반 그래프와 다릅니다.

  • 정점 집합을 명시적으로 L과 R 두 개로 나눈 다음, DFS는 L과 R 중 하나에서만 시행해야 합니다(줄 24). 일반성을 잃지 않고 L에서 시행한다고 하겠습니다.
  • 간선 입력을 받을 때, L에서 R로 가는 것만 저장해도 됩니다. 무방향그래프이지만 이분 매칭 상황의 특수성 때문입니다.
  • DFS 결과가 참(True)으로 나왔을 때, 우리는 한 사람을 찾은 것이 아니라 한 쌍의 커플을 형성한 것이므로, cnt는 1이 아니라 2가 증가되어야 합니다.

2. 가운데 올 수 있는 사람을 처리해주어야 합니다.

  • 최대 이분 매칭을 찾은 다음, 사람이 1명 이상 남았다면, 그 사람을 가운데에 둘 수 있으므로 cnt를 추가적으로 1 증가시켜야 합니다.

댓글을 작성하려면 로그인해야 합니다.