우선순위 큐 (priority_queue) 를 이용해서 문제를 풀 수 있다.
백준 1927은 작은 값부터 출력하는 문제이며 백준 11279는 큰 값부터 출력하는 문제이다.
https://blockdmask.tistory.com/107
위 링크를 보면 우선순위 큐의 선언 방식을 알 수 있다.
우선순위 큐는 내림차순으로 쌓이는게 default이며
priority_queue<int> pq;
로 선언해주면 큰 값부터 출력이 가능하다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
priority_queue<int> pq;
while (n--)
{
int num;
cin >> num;
if (num != 0)
pq.push(num);
else
{
if (pq.empty())
cout << 0 << '\n';
else
{
cout << pq.top() << '\n';
pq.pop();
}
}
}
}