20kee   6달 전

알고리즘은 아직 뭐 아는게없어서 직관적인 풀이법으로 풀고 있습니다.

먼저 사람들의 a b를 입력받으면서

각 번호의 책을 원하는 사람들의 수를 total에 저장합니다.

만약 입력이 1 / 3 3 / 1 3, 2 3, 1 2 / 라면 1번을 원하는 사람이 2명, 2번을 원하는 사람이 2명, 3번을 원하는 사람이 2명이므로

total에는 {2, 2, 2}처럼 저장됩니다. (0번째 인덱스는 제외)

먼저 이렇게 total을 다 정리하고 나면

첫번째 사람부터 total을 훑으면서 원하는 사람이 가장 척은 책을 가져가게 됩니다. 만약 m번째 사람이 1번부터 3번까지의 책을 원하고 total이 {1, 2, 3, 1, 1}이라면 첫번째 책을 가져가게 합니다.(bookshelf vector를 통해 책이 있는 경우만 total을 확인하도록 함.)

이런식으로 마지막 사람까지 책을 가져가게 하는 알고리즘인데, 코드에 문제가 있는지 제 직관으로 세운 풀이가 문제가 있는지 알고 싶습니다.

반례를 가르쳐주시면 가장 좋을 것 같네요 도움을 주세요 ㅠㅠ

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