73.최대힙(priority_queue: 우선순위 큐)

강지훈·2021년 12월 13일
0

최대힙 자료를 이용하여 다음과 같은 연산을 하는 프로그램을 작성하세요.
1) 자연수가 입력되면 최대힙에 입력한다.
2) 숫자 0 이 입력되면 최대힙에서 최댓값을 꺼내어 출력한다.
(출력할 자료가 없으면 -1를 출력한다.)
3) -1이 입력되면 프로그램 종료한다.
▣ 입력설명
첫 번째 줄부터 숫자가 입력된다. 입력되는 숫자는 100,000개 이하이며 각 숫자의 크기는 정
수형 범위에 있다.
▣ 출력설명
2) 연산을 한 결과를 보여준다.
[C++를 이용한 창의적 문제 해결]

  • 77 -
    ▣ 입력예제 1
    5
    3
    6
    0
    5
    0
    2
    4
    0
    -1
    ▣ 출력예제 1
    6
    5
    5

#include
#include
using namespace std;

int main() {
int a;
priority_queuepQ;
while(1){
cin>>a;
if(a==-1) break;
if(a==0) {
if(pQ.empty()) cout<<"-1"<<endl;
else {
cout<<pQ.top()<<endl; // 제일 root 노드 출력
pQ.pop();
}
}
else pQ.push(a);
}
return 0;
}

profile
never stop

0개의 댓글