Algorithm/etc
priority_queue : 우선순위 큐 , 최소힙, 최대힙
DingCoDing
2022. 1. 17. 15:37
반응형
최대힙
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <math.h>
#include <queue>
using namespace std;
int main() {
//freopen("input.txt.txt","rt",stdin);
int a;
priority_queue<int> pQ;
while(true){
scanf("%d",&a);
if(a==-1) break;
if(a==0){
if(pQ.empty()) printf("-1\n");
else{
printf("%d\n",pQ.top());
pQ.pop();
}
}
else pQ.push(a);
}
}
최소힙
최소힙은 최대힙을 구하는 것을 이용하여
부호에 마이너스를 붙여주면 구할 수 있다.
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <math.h>
#include <queue>
using namespace std;
int main() {
//freopen("input.txt.txt","rt",stdin);
int a;
priority_queue<int> pQ;
while(true){
scanf("%d",&a);
if(a==-1) break;
if(a==0){
if(pQ.empty()) printf("-1\n");
else{
printf("%d\n",pQ.top());
pQ.pop();
}
}
else pQ.push(a);
}
}
반응형