GitHubSeob
C++ / 백준 / 11279 / 최대 힙 본문
문제
https://www.acmicpc.net/problem/11279
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가
www.acmicpc.net
문제풀이
0을 입력받으면 배열에서 가장 큰 값을 출력하고 제거한다.
0을 입력받을 때 배열이 비어있으면 0을 그대로 출력한다.
0 이외의 숫자를 입력받으면 배열에 집어넣는다.
배열 대신 숫자를 입력받을 때 값을 정렬해주는 우선순위 큐를 이용해 풀었다.
코드
#include <iostream>
#include <queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int N(0), idx(0), num(0);
cin >> N;
priority_queue<int>pq;
for (idx = 0; idx < N; ++idx) {
cin >> num;
if (num) {
pq.push(num);
}
else {
if (!pq.empty()) {
cout << pq.top();
pq.pop();
}
else {
cout << 0;
}
cout << '\n';
}
}
}
'Baekjoon > Silver' 카테고리의 다른 글
C++ / 백준 / 4358 / 생태학 (0) | 2022.03.30 |
---|---|
C++ / 백준 / 11286 / 절댓값 힙 (0) | 2022.03.24 |
C++ / 백준 / 14425 / 문자열 집합 (0) | 2022.03.21 |
C++ / 백준 / 1620 / 나는야 포켓몬 마스터 이다솜 (0) | 2022.03.21 |
C++ / 백준 / 2504 / 괄호의 값 (0) | 2022.03.14 |