문제에서 우선순위 큐를 사용했습니다.
그런데 제가 익숙하게 쓰던 방식과 정렬이 다르게 나오더군요
greater<int>를 쓰면 작은 수 부터
less<int>를 쓰면 큰 수 부터
그래서 return a < b 로 백터를 sort해보고
우선순위 큐에 넣고 차례대로 pop해봤는데 출력이 이렇게 나오던군요
priority queue : 10 7 6 3 2 1
vector : 1 2 3 6 7 10
서로 반대로 정렬되는데 힙 구조를 봐도 왜 이렇게 되는지 잘 모르겠습니다.
이유가 있나요?
그냥 따로따로 그런가보다 하고 외워야 하나요?
네. pq는 원래 가장 큰 원소가 top에 오도록 되어있습니다.
@Green55
그렇게 된 특별한 이유는 없나요?
오름차순 정렬에 익숙해져있어서 그런지 어색하네요 ㅎㅎ;;
https://stackoverflow.com/ques...
@startlink
스택오버플로에는 뭐든지 있군요;; 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
henongj 3년 전
문제에서 우선순위 큐를 사용했습니다.
그런데 제가 익숙하게 쓰던 방식과 정렬이 다르게 나오더군요
greater<int>를 쓰면 작은 수 부터
less<int>를 쓰면 큰 수 부터
그래서 return a < b 로 백터를 sort해보고
우선순위 큐에 넣고 차례대로 pop해봤는데 출력이 이렇게 나오던군요
priority queue : 10 7 6 3 2 1
vector : 1 2 3 6 7 10
서로 반대로 정렬되는데 힙 구조를 봐도 왜 이렇게 되는지 잘 모르겠습니다.
이유가 있나요?
그냥 따로따로 그런가보다 하고 외워야 하나요?