문제 풀이
산타 할아버지는 아이들에게 선물을 줄 때, 가장 가치가 큰 선물을 준다.
선물 보따리에 머가 들었는지 모르겠지만 꺼냈을 때 그 가치가 가장 큰 것을 뽑으려면 최대 힙 구조로 구현하면 된다.
따라서 우선순위 큐를 최대 힙으로 구성해서 뽑으면 된다.
소스 코드
#include <iostream>
#include <queue>
using namespace std;
int n, a, x;
priority_queue<int> pq;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n;
while (n--)
{
cin >> a;
if (a == 0)
{
if (pq.empty())
cout << "-1\n";
else
{
cout << pq.top() << '\n';
pq.pop();
}
}
else
{
for (int i = 0; i < a; i++)
{
cin >> x;
pq.push(x);
}
}
}
return 0;
}
'Algorithm' 카테고리의 다른 글
[백준 4358] 생태학 (0) | 2021.10.19 |
---|---|
[백준 15903] 카드 합체 놀이 (0) | 2021.10.13 |
[백준 1417] 국회위원 선거 (0) | 2021.10.13 |
[백준 2075] N번째 큰 수 (0) | 2021.10.13 |
[백준 16926] 배열 돌리기1 (0) | 2021.10.12 |