728x90
⭐️난이도
Silver 1
⭐️문제
https://www.acmicpc.net/problem/1927
최소 힙을 구현하면 되는 간단한 문제이다!
⭐️ 내 풀이 & Code
📌 C++에서는 priority_queue를 제공하므로 이를 이용하면 풀 수 있는 문제였다.
#include <iostream>
#include <vector>
#include <queue>
#include <string>
#include <stack>
#define INF 100000000
using namespace std;
int n; // 연산의 개수
priority_queue<int, vector<int>, greater<int>> pq; // 최소힙
int main(void) {
scanf("%d", &n);
for(int i = 0; i < n; i++){
int x;
scanf("%d", &x);
if(x == 0){
if(pq.empty())
printf("0\n");
else{
printf("%d\n", pq.top());
pq.pop();
}
}
else{
pq.push(x);
}
}
return 0;
}
728x90