1927번: 최소 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이�
www.acmicpc.net
[문제 풀이]
STL의 우선 순위 큐를 이용하여 문제를 풀어보았습니다.
이 문제는 단순히 STL을 구현하는 것이므로 설명은 생략하겠습니다.
priority_queue에 대한 개념은 아래에 링크에 정리되어있습니다.
(C++ STL) priority_queue
priority_queue< 자료형 T, 구현체 Container, 비교 연산자 Compare > priority_queue 란? 힙 이론을 통해 우선순위 큐를 구현한 것 입니다. 자료형으로는 변수, 클래스 등 다양한 것들을 넣을 수 있습니다. 구현.
steady-life.tistory.com
[코드]
#include<iostream>
#include<queue>
using namespace std;
int N;
priority_queue<int, vector<int>, greater<int>> p_queue;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
for (int i = 0; i < N; i++) {
int temp;
cin >> temp;
if (temp == 0) {
if (p_queue.empty()) {
cout << 0 << "\n";
}
else {
cout << p_queue.top() << "\n";
p_queue.pop();
}
}
else {
p_queue.push(temp);
}
}
return 0;
}
'algorithm > BOJ' 카테고리의 다른 글
백준 1260_DFS와 BFS(C++) (0) | 2020.10.21 |
---|---|
백준 9342_염색체(C++) (2) | 2020.10.20 |
백준 11279_최대 힙(C++) (0) | 2020.10.18 |
백준 10845_큐(C++) (0) | 2020.10.17 |
백준 10828_스택(C++) (0) | 2020.10.17 |