일단 std::sort함수는 자동으로 오름차순 정렬되고, pair를 sort에 넣을 경우, fisrt 중복시 second도 오름차순 정렬됩니다.
그리고 왜 sort(d)가 아니라 d+1인가요?
차라리 d[1] 등으로 바꾸거나, 값 인풋을 i=0으로 시작해보시는것도 어떤가 싶습니다.
1931번 - 회의실 배정
맞은 코드를 봤는데 끝나는 시간만으로 정렬하지 않았습니다. 맞은 코드 2개 모두 sort 함수에 compare 함수를 전달하지 않고 있으니까요.
그러면 pair<int, int>의 기본 비교 연산자가 적용되는데, pair의 기본 비교 연산자는 다음과 같습니다.
맞으신 코드에서 끝나는 시간을 first, 시작하는 시간을 second에 넣어주셨으니 끝나는 시간이 같다면 시작하는 시간이 이른 순으로 정렬되어야 하고, 실제로 compare를 직접 짠다고 해도 이렇게 해야 합니다.
왜 끝나는 시간만으로 정렬하면 안 되는지는 https://www.acmicpc.net/board/... 에도 설명되어 있습니다.
댓글을 작성하려면 로그인해야 합니다.
cth5132 5년 전
왜 틀리는 것인지 모르겠습니다