문제: 11279번: 최대 힙
#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <iomanip> // setprecision을 사용하기 위한 헤더
#include <climits>
#include <list>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n; // 연산의 개수
cin >> n;
// 최대힙으로 동작하도록
priority_queue<int> pq;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
if (x == 0) {
if (pq.empty()) {
cout << 0 << "\n";
}
else {
cout << pq.top() << "\n";
pq.pop();
}
}
else {
pq.push(x);
}
}
return 0;
}
우선순위 큐만 잘 알면 쉽게 해결할 수 있는 문제였다. 이 문제가 왜 실버 2나 되는지는 모르겠지만 그래도 쉽게 풀어서 기분은 좋다 ^~^