프로그래머스
d
를 오름차순으로 정렬한다.function solution(d, budget){
d.sort((a,b) => a-b);
let sum = 0;
for(let i=0; i<=d.length; i++){
if(sum + d[i] < budget){
sum += d[i];
}else if(sum + d[i] === budget){
return i+1; //i는 인덱스이고, 결과는 구매한 부서 개수이므로 1을 더해준다.
}else{
return i;
}
}
}
d
오름차순으로 정렬한다.d
를 차례로 방문해 예산에서 각 비용을 빼고, 그 값이 0보다 작다면 cnt를 리턴한다.💫 예산에서 비용을 빼는 방법이 다른 변수 sum을 만들어 비교하는 것보다 이해하기 쉽고 간단한 것 같다.
function solution(d, budget){
let cnt = 0;
d.sort((a,b) => a-b);
for(let vals of d){
budget -= vals;
if(budget<0) break;
else cnt++
}
return cnt;
}