반응형

최대힙

#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);

	}
	
	
}
반응형

+ Recent posts