Algorithm/Programmers(c++)

[c++][프로그래머스] 예산

kim-hasa 2021. 7. 29. 15:39

https://programmers.co.kr/learn/courses/30/lessons/12982

 

코딩테스트 연습 - 예산

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

programmers.co.kr

가장 많은 부서의 물품을 구매하는 문제입니다.

 

가장 적은 금액부터 정렬시킨후, 예산에서 빼가면서 계산합니다.

 

예산이 0보다 작아지는 경우에 반복문을 끝냅니다.

#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)
            break;
        else
        {
            answer++;
        }
    }
    
    return answer;
}

※ 코드가 지저분할 수 있습니다.