알고리즘
BOJ: 크리스마스 선물(14235) [C++]
avocado8
2024. 3. 18. 00:25
https://www.acmicpc.net/problem/14235
14235번: 크리스마스 선물
크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만
www.acmicpc.net
의욕이안나도해야되는게있는거다...
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
//최대히프
priority_queue<int, vector<int>>pq;
int solution(int a) {
int res = 0;
//갖고있는 것들 중에 가장 큰 수(top)출력하고 제거
if (a == 0) {
//없으면 -1
if (pq.empty()) {
res = -1;
}
else {
res = pq.top();
pq.pop();
}
}
//0이 안 들어오면 출력하지 말아야하니까 -2를 리턴하고 메인함수에서 출력 안하게 설정
else {
//a개의 선물을 pq에 큰 것부터 저장
for (int i = 0; i < a; i++) {
int gift;
cin >> gift;
pq.push(gift);
}
res = -2;
}
return res;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, a;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
int res = solution(a);
if (res != -2) {
cout << res << "\n";
}
}
return 0;
}