10814번 - 나이순 정렬
해당 코드에서 Check문에 return a.first < b.first; 만 남길 경우 정답이 나옵니다.
정답이 맞는 이유는 알겠습니다.
하지만 이 글에 적힌 코드처럼, if(a.first==b.first) return a==b와 stable_sort를 합쳐서 사용한 코드는 틀린 이유가
정확히 파악되지 않습니다.
테스트 케이스는 통과하는 것으로 나옵니다.
해당 부분에 대해 도움 주시면 감사하겠습니다.
return a==b;는 a와 b가 같은 pair이면 true, 다른 pair이면 false를 리턴합니다.
즉 같은 페어가 check에 의해서 비교된다면, 정렬함수는 a<a라고 판단합니다. 따라서 완전히 잘못된 정렬이 이루어집니다.
Green55
감사합니다. 설명 주신 부분을 자세히 곱씹어보니 제가 sort함수의 근본에 대해 잘못이해하고 있었습니다 :-)
댓글을 작성하려면 로그인해야 합니다.
shuhu_01 4년 전
해당 코드에서 Check문에 return a.first < b.first; 만 남길 경우 정답이 나옵니다.
정답이 맞는 이유는 알겠습니다.
하지만 이 글에 적힌 코드처럼, if(a.first==b.first) return a==b와 stable_sort를 합쳐서 사용한 코드는 틀린 이유가
정확히 파악되지 않습니다.
테스트 케이스는 통과하는 것으로 나옵니다.
해당 부분에 대해 도움 주시면 감사하겠습니다.