1주차(자료구조) - [C++]백준11279 최대 힙
문제
예제 입력
코드
#include <iostream>
#include <queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
priority_queue<int> heap;
int num;
for (int i = 0; i < N; i++) {
cin >> num;
if (num == 0) {
if (heap.empty())
cout << 0 << "\n";
else {
cout << heap.top() << "\n";
heap.pop();
}
}
else
heap.push(num);
}
}
설명
C++ STL(표준 템플릿 라이브러리)에서 큐와 우선순위 큐가 있는데 그중 우선순위 큐를 사용하면 쉽게 풀 수 있습니다. 우선순위 큐는 힙이라고 생각하면 편한데 PUSH된 요소중에서 가장 큰값을 확인하기 위해 TOP를 사용할 수 있으면 POP해줄 수 있습니다.
<queue>
-priority_queue<자료형> 변수명; : 우선순위 큐(힙) 자료구조 사용