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

서로 반대로 정렬되는데 힙 구조를 봐도 왜 이렇게 되는지 잘 모르겠습니다.

이유가 있나요?

그냥 따로따로 그런가보다 하고 외워야 하나요?

Green55   3년 전

네. pq는 원래 가장 큰 원소가 top에 오도록 되어있습니다.

henongj   3년 전

@Green55

그렇게 된 특별한 이유는 없나요?

오름차순 정렬에 익숙해져있어서 그런지 어색하네요 ㅎㅎ;;

henongj   3년 전

@startlink

스택오버플로에는 뭐든지 있군요;; 감사합니다.

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