절댓값 힙 11286

PublicMinsu·2023년 8월 31일
0

문제

접근 방법

2가지 우선순위 큐(양수, 음수)를 사용하거나 2가지 정렬 기준을 사용하면 된다.

코드

#include <iostream>
#include <queue>
using namespace std;
typedef pair<int, int> pii;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    priority_queue<pii, vector<pii>, greater<pii>> pq;
    int N, x;
    cin >> N;
    while (N--)
    {
        cin >> x;
        if (x)
        {
            pq.push({abs(x), x});
        }
        else
        {
            if (pq.empty())
                cout << 0;
            else
                cout << pq.top().second, pq.pop();
            cout << "\n";
        }
    }
    return 0;
}

풀이

2가지 우선순위 큐를 사용하는 것보단 pair를 활용한 2가지 정렬 기준이 더 깔끔하게 나온다.

profile
연락 : publicminsu@naver.com

0개의 댓글