https://www.acmicpc.net/problem/1927
풀이
우선순위 큐에 greater를 이용하여 오름차순으로 정렬한다.
이후, N만큼 반복시키며 입력된 값을 확인한다.
입력된 값이 0이며, queue가 비어있으면 0을 출력한다.
Code
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
priority_queue<int,vector<int>, greater<int>> q;
cin >> N;
while (N--)
{
int x;
cin >> x;
if (x == 0 && q.empty())
{
cout << "0" << '\n';
}
else if (x == 0)
{
cout << q.top() << '\n';
q.pop();
}
else
q.push(x);
}
}
'💻 OnlineJudge > Baekjoon' 카테고리의 다른 글
[백준 / BOJ] C++ 1655 가운데를 말해요 (0) | 2022.09.26 |
---|---|
[백준 / BOJ] C++ 11286 절대값 힙 (1) | 2022.09.26 |
[백준 / BOJ] C++ 11866 요세푸스 문제 0 (0) | 2022.08.22 |
[백준 / BOJ] C++ 2164 카드 2 (0) | 2022.08.22 |
[백준 / BOJ] C++ 18258 큐 2 (0) | 2022.08.19 |