1671번 - 상어의 저녁식사
이분 매칭 공부하다가 이 문제 풀게 되었는데요.
그래프는 상어끼리 비교해서 i번째 상어가 j번째 상어를 먹을 수 있으면 bpGraph[i][j]=1 로 뒀고
이분매칭하는 과정에서 한 상어가 두마리까지 먹을 수 있으니까
반복문에서 i번째 상어가 먹을 수 있는 상어와 매칭되는 과정을 두번 씩 반복했습니다.
예외처리는 두 마리 상어가 서로 잡아먹을 수 없으니까 이분매칭이 끝나고 서로 잡아먹는 경우 한마리는 남게 +1해줬고
모든 상어가 서로 잡아먹을 수 있을 때 0이 나올때 1마리가 남게 해줬습니다.
이렇게 푸는 방법 자체가 잘못된건가요?
상어들의 능력치가 같은 경우도 생각해보세요.
상어들의 능력치가 같은 경우 서로 잡아먹을 수 있어서 그런 경우 +1해주고
전부 능력치가 같아서 다 잡아먹어 0이 나올경우 1 나오게 처리했는데 이 밖에도 능력치가 같은 예외가 있나요?
저 같은 경우에는 상어가 서로 잡아먹는 경우를 방지하기 위해서 index가 작은 애가 큰 애만 먹을 수 있도록 해줬어요. 그것 외에는 없던 걸로 기억해요.
저도 @hongjun7 처럼 처리했어요
댓글을 작성하려면 로그인해야 합니다.
josualaurant 9년 전
이분 매칭 공부하다가 이 문제 풀게 되었는데요.
그래프는 상어끼리 비교해서 i번째 상어가 j번째 상어를 먹을 수 있으면 bpGraph[i][j]=1 로 뒀고
이분매칭하는 과정에서 한 상어가 두마리까지 먹을 수 있으니까
반복문에서 i번째 상어가 먹을 수 있는 상어와 매칭되는 과정을 두번 씩 반복했습니다.
예외처리는 두 마리 상어가 서로 잡아먹을 수 없으니까 이분매칭이 끝나고 서로 잡아먹는 경우 한마리는 남게 +1해줬고
모든 상어가 서로 잡아먹을 수 있을 때 0이 나올때 1마리가 남게 해줬습니다.
이렇게 푸는 방법 자체가 잘못된건가요?