티스토리 뷰

백준/실버

[백준 14235번] 크리스마스 선물 (C++)

게임개발기원 2023. 2. 24. 21:28

문제링크 : https://www.acmicpc.net/problem/14235

 

14235번: 크리스마스 선물

크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main(void) {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
   
    int N, A, present;
    priority_queue<int>pq;
    cin >> N;

    while(N--)
    {
        cin >> A;
        if(A==0)
        {
            if(pq.empty())
            {
                cout << -1 <<"\n";
            }
            else
            {
                cout<<pq.top()<<"\n";  //제일 큰 값 출력
                pq.pop();
            }
        }
        else
        {
            while(A--)  //A가 0이 아닐 때
            {
                cin >> present;
                pq.push(present);
            }
        }
    }
    return 0;
}

우선순위 큐를 이용하여 가장 큰 값이 맨 앞 (top)에 오게된다.

A가 0일때 이를 출력하므로 top을 출력한후 pop으로 큐에서 지워주면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함