알고리즘

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;
}

 

 

'알고리즘' 카테고리의 다른 글

BOJ: 계단 오르기(2679) [C++]  (0) 2024.03.30
BOJ: 톱니바퀴(2)(15662) [C++]  (0) 2024.03.28
BOJ: 꽃길(14620) [C++]  (0) 2024.03.12
BOJ: 피보나치 함수(1003) [C++]  (0) 2024.03.07
BOJ: 프린터 큐(1966) [C++]  (0) 2024.03.06