- 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다.
- 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어집니다.
- 최대 몇 개의 부서에 물품을 지원할 수 있는지 return
최대한 많은 부서에 물품을 비원할 수 있으려면,
신청 금액이 적은 부터들부터 주는것이 최대한 많이 줄 수 있는 방법이다.
reduce로 누적 합계를 끝까지 구하긴 하지만
예산보다 작은 경우에는 숫자를 카운트(answer++; answer을 1씩 추가)하여
누적 함수 몇번째까지 예산안에 들어오는지 확인해줍니다.
function solution(d, budget) {
var answer = 0;
d.sort( (a, b) => a - b ); // 작은 수부터 나열
d.reduce( ( acc, cur ) => {
acc + cur <= budget ? answer++ : answer; // 누적 합계가 budget보다 작은면 answer를 1씩 추가
return acc + cur;
}, 0 ); // 합계의 시작이 0부터
return answer;
}
'프로그래머스 > JavaScript' 카테고리의 다른 글
[프로그래머스 JavaScript] Level1 [1차] 비밀지도 (0) | 2020.06.11 |
---|---|
[프로그래머스 JavaScript] Level1 실패율 (0) | 2020.06.09 |
[프로그래머스 JavaScript] Level1 크레인 인형뽑기 게임 (0) | 2020.06.04 |
[프로그래머스 JavaScript] Level1 체육복 (0) | 2020.06.03 |
[프로그래머스 JavaScript] Level1 직사각형 별찍기 (0) | 2020.04.17 |