이번 문제는 문제를 보면서 메모장에 아래와 같은 로직을 적고
딱 그대로 코드를 작성해서 풀 수 있었다
처음 구상을 제대로 하면 빠르게 풀 수 있다는 걸 느꼈다
- d를 오름차순 정렬
- d를 하나씩 조회
- budget에서 하나씩 빼보고 0보다 작아지면 break
- 0보다 작아지지 않으면 실제로 빼고 answer++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> d, int budget) {
int answer = 0;
sort(d.begin(), d.end());
vector<int>::iterator iter;
for(iter = d.begin(); iter != d.end(); iter++) {
if(budget - *iter >= 0) {
budget -= *iter;
answer++;
} else {
break;
}
}
return answer;
}