작년에 자료구조 수업을 들을 때 직접 heap 을 구현하였다.
이 문제도 그렇게 푸는 줄 알았는데
heap 과 관련된 자료를 검색하던중
priority_queue<int, vector<int>, greater<int>> q;
이러한 방법을 찾게 되어 priority_queue 을 사용하여 문제를 풀었다.
#include<iostream>
#include<queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
priority_queue<int, vector<int>, greater<int>> q;
int n;
cin >> n;
while (n--) {
int num;
cin >> num;
if (num == 0) {
if (q.size() == 0)cout << 0 << "\n";
else {
cout << q.top() << "\n";
q.pop();
}
}
else {
q.push(num);
}
}
}
'문제풀이 > 백준' 카테고리의 다른 글
[C++] 백준 2606 문제풀이 (0) | 2021.02.16 |
---|---|
[C++] 백준 1931 문제풀이 (0) | 2021.02.16 |
[C++] 백준 1389번 문제풀이 (0) | 2021.02.14 |
[C++] 백준 1764번 문제풀이 (0) | 2021.02.11 |
[C++] 백준 1697번 문제풀이 (0) | 2021.02.11 |