hnryu   7년 전

왜 틀렸는지 감이 오지 않습니다.. 테스트 케이스 확인했는데 잘 모르겠습니다..

bupjae   7년 전

compare 함수를 잘못 작성하셨습니다.

 

qsort 와 같이 쓰는 compare 의 반환값은 다음 규칙을 따라야 합니다:

first 가 second 보다 앞에 와야 한다면 음의 정수를 반환한다

first 가 second 보다 뒤에 와야 한다면 양의 정수를 반환한다

first 와 second 가 "동등"하다면 0을 반환한다. (이 때는 정렬 결과에서 두 객체의 순서는 정해지지 않음)

 

compare 함수는 다음과 같은 행동을 하면 안됩니다.

* 객체의 순서에 영향을 줄 수 있는 필드의 내용을 수정하면 안 됩니다. (41~43번째 줄)

* 비교 연산자의 결과값을 그대로 반환하면 안 됩니다. (46, 48번째 줄)

 [참고] <algorithm> 에 포함되어 있는 sort 함수에서 사용하는 compare 객체의 반환값은 46번, 48번째 줄의 형태로 반환해야 합니다. 서로 다른 규칙을 가진 두 함수를 혼동하신 것 같습니다.

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