반응형
최대힙
#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);
}
}
반응형
'Algorithm > etc' 카테고리의 다른 글
priority queue와 struct vector을 이용한 정렬 (0) | 2022.01.17 |
---|---|
C++ 구조체 만들기 (0) | 2022.01.17 |
queue 직접구현, BFS (0) | 2022.01.16 |
[그래프] 인접 리스트(adjency list) 코드 구현 C++ (0) | 2022.01.15 |
DFS 최소 비용 (DFS 매개변수 이용) (0) | 2022.01.15 |