득이공간
[백준 C++] 1927 최소 힙 - 우선순위큐 본문
#include <iostream>
#include <queue>
using namespace std;
priority_queue<int, vector<int>, greater<int>> MinHeap;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int N;
cin >> N;
for (int i = 0; i < N; ++i)
{
int Input;
cin >> Input;
if (Input == 0)
{
if (MinHeap.empty())
{
cout << 0 << '\n';
}
else
{
cout << MinHeap.top() << '\n';
MinHeap.pop();
}
}
else
{
MinHeap.emplace(Input);
}
}
}
우선순위 큐 자료구조를 이용해서 푸는 문제입니다.
priority_queue<int>로 컨테이너를 선언하면 최대힙으로 생성되지만
priority_queue<int, vector<int>, greater<int>>로 선언하면 최소힙으로 생성됩니다.
최소힙으로 컨테이너를 생성한 후에 문제에서 제시하는 연산을 수행하는 프로그램을 작성하면 됩니다.
'PS > 알고리즘 문제풀이' 카테고리의 다른 글
[백준 C++] 1074 Z - 분할정복 (0) | 2024.02.15 |
---|---|
[백준 C++] 2630 색종이 만들기 - 분할정복 (0) | 2024.02.15 |
[백준 C++] 1759 암호 만들기 - 조합론 (1) | 2024.02.13 |
[백준 C++] 18111 마인크래프트 - 브루트포스 (1) | 2024.02.13 |
[백준 C++] 1735 분수 합 - 유클리드호제법 (1) | 2024.02.12 |