3명이 전부 다 같은 점수이고, 이것을 정렬했는데 우연히 3번 후보가 3점을 더 많이 받아 1등인 경우 제대로 된 답을 출력하지 않을 것 같습니다.
2456번 - 나는 학급회장이다
정말 그렇네요.
아래 TC의 경우 기존 코드는 3 8이 아닌 0 8이 출력됩니다.
4
3 3 3
1 1 3
2 2 1
2 2 1
그래서 정렬하기 전에 득표수가 모두 같은 경우 3점을 받은 횟수로 정렬하도록 조건을
추가 하였습니다. (0점은 줄수 없으므로 2점 이하 받은 횟수는 고려할 필요 없음 - 혹시나 해서 1점 횟수까지 고려해 보았음)
if (dd[1].total == dd[2].total && dd[1].total == dd[3].total)
sort_f(3);
else
sort();
이렇게 했더니 3 8로 출력되네요.
하지만 여전히 fail. ㅜㅜ
TC만 충분하다면 쉽게 잡을 수 있을거 같은데 TC없이 모든 예외 경우를
생각하기가 쉽지 않네요.
도움 감사드립니다.
댓글을 작성하려면 로그인해야 합니다.
daeinki 7년 전
3명의 반장 후보가 받은 점수로 내림 차순 정렬하여
1, 2번 후보에 대해서만 비교 했습니다.
종합 점수가 같은 경우 리커시브하게 3점을 받은 횟수가 많은 후보를 리턴하고 이것도
같으면 2점을... 아무리 입력값을 바꿔가며 돌려봐도 다 정답으로 나오는데
제출하면 틀리다고 나오네요. 어디가 잘못되었을까요? ㅠㅠ