배열을 오름차순으로 정렬한 뒤 앞에서부터 차례대로 더해간 뒤 budget 값보다 크면 지금까지 더한 개수를 반환하면 된다.
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> d, int budget) {
int answer = 0;
int sum = 0;
sort(d.begin(),d.end());
for (int i =0 ; i < d.size(); i++)
{
sum += d[i];
if (sum > budget)
break;
answer++;
}
return answer;
}