바야바네 움집

[Level1] 예산 본문

🧶 알고리즘/🎲프로그래머스Programmers

[Level1] 예산

친절한 바야바 2021. 11. 20. 00:08

📌풀이

오름차순으로 정렬한 뒤 작은 수부터 하나씩 빼보면 된다. 예외인 '예산이 남았을 경우' 만 잘 처리해주면 됨.

 

📌코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> d, int budget) {
    int answer = 0;
	
    // 오름차순 정렬
    sort(d.begin(), d.end());

    for(int i=0; i<d.size(); i++)
    {
        budget -= d[i];
        
        if(budget < 0)
        {
            answer = i;
            break;
        }
        if(budget == 0)
        {
            answer = i + 1;
            break;
        }

    }
	
    // 예산이 남는 경우 (=모든 팀에게 지원 가능한 경우)
    if(budget > 0)
        answer = d.size();

    return answer;
}
Comments