✅ 우선순위 큐 (힙)
방법1
방법2
방법 1, 2 둘 다 가능하지만 방법1은 자동으로 해주는 방법2와 달리 손수 분기를 만들어 값을 비교하는 과정이 필요하므로 좀 더 복잡하다. 방법2로 결정!
#include <iostream>
#include <algorithm>
#include <string>
#include <queue>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> que;
for(int i=0;i<N;i++){
int num;
cin >> num;
if(num != 0){
que.push(make_pair(abs(num), num));
}
else{
if(que.empty()) cout << "0" << "\n";
else{
cout << que.top().second << "\n";
que.pop();
}
}
}
return 0;
}