최소 힙 1927

PublicMinsu·2022년 12월 2일
0

문제

접근 방법

우선순위 큐에 집어넣고 연산에 따라 행동하면 된다.

코드

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    priority_queue<int, vector<int>, greater<int>> pq;
    int N;
    cin >> N;
    for (int i = 0; i < N; ++i)
    {
        int x;
        cin >> x;
        if (x == 0)
        {
            int output = 0;
            if (!pq.empty())
            {
                output = pq.top();
                pq.pop();
            }
            cout << output << '\n';
        }
        else
        {
            pq.push(x);
        }
    }
    return 0;
}

풀이

오름차순 우선순위 큐를 만들어서 값들을 집어넣고 출력을 해야 할 때는 비어있는지 확인하여 출력해준다.

profile
연락 : publicminsu@naver.com

0개의 댓글