Written by JS970
on
on
1927 - 최소 힙
- 난이도: 실버 2
- 날짜: 2023년 3월 3일
- 상태: Correct
- 추가 검토 여부: No
- 알고리즘 : queue, heap
Solution
- 그냥 priority_queue를 선언하여 시키는 대로 풀면 되는 매우 간단한 문제이다.
- '\n'을 사용하지 않고 endl로 리턴했다가 시간초과를 한 번 봤다. 주의하자
code
#include <iostream>
#include <queue>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
priority_queue<int, vector<int>, greater<int>> pq;
for(int i = 0; i < N; i++)
{
int num;
cin >> num;
if(num == 0 && !pq.empty())
{
cout << pq.top() << '\n';
pq.pop();
}
else if(num == 0 && pq.empty()) cout << 0 << '\n';
else pq.push(num);
}
return 0;
}