백준 23757 아이들과 선물 상자

김두현·2023년 2월 20일
1

백준

목록 보기
103/133
post-thumbnail

🔒[문제 url]

https://www.acmicpc.net/problem/23757


🪄전체 코드

#include <iostream>
#include <queue>
using namespace std;
#define IAMFAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

int n,m;
//가장 많이 담겨있는 선물상자부터 가져가기 위해 우선순위 큐 사용
priority_queue<int> c;
int w[100001];

bool ans = true;//모두 가져간다면 true

void INPUT()
{
	IAMFAST
	cin >> n >> m;
	for(int i = 0; i < n; i++)
	{
		int gift; cin >> gift;
		c.push(gift);
	}
	for(int i = 0; i < m; i++) cin >> w[i];
}


void SOLVE()
{
	for(int i = 0; i < m; i++)
	{
		int top = c.top();//선물이 가장 많이 담겨있는 상자 안의 갯수
        
        //i번 아이가 받을 수 있다면, 가져간만큼 뺀 후 다시 pq에 삽입
		if(top >= w[i]) c.pop() , c.push(top-w[i]);
		else
		{
			ans = false;
			break;
		}
	}
	cout << ans;
}

int main()
{
	INPUT();
	SOLVE();
}

🥇문제 후기

GOLD5 미만 난이도는 알고리즘 및 풀이 설명을 주석으로 대체합니다.
주석을 참고해주세요.


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글