https://programmers.co.kr/learn/courses/30/lessons/12982
function solution(d, budget) {
let answer = 0;
d.sort((a,b)=>{return a-b;});
for(let i=0;i<d.length;i++){
if(d[i] > budget) break;
else{
budget -= d[i];
answer+=1;
}
}
return answer;
}
let d = [1,3,2,5,4];
let budget = 9;
console.log(solution(d, budget));
처음에 조합이라고 생각하고 풀었다가 시간초과가 발생했다.
최대한 많은 부서에게 나눠주기 위해 우선 d를 sort로 낮은순으로 정렬하였다.
d를 반복하면서 목표치인 budget보다 작으면 answer+1을 하고, budget에서 고른 수를 빼준다.
d의 요소가 budget보다 크게되면 더이상 나눠줄 수 없는 경우니 break를 하고 여태 고른 answer를 정답으로 도출하였다.