[프로그래머스] 예산

ppyororong_0_0·2022년 1월 13일
0

프로그래머스

목록 보기
5/19

[프로그래머스 - 1단계] 예산 문제

https://programmers.co.kr/learn/courses/30/lessons/12982

📝 문제 설명

배열 d : 부서별로 신청한 금액이 들어있음
budget : 예산

예산 내에서 최대 몇 개의 부서에 물품을 지원할 수 있는지 return

💡 풀이

1. 최대한 많은 부서에 물품을 지원하려면 신청 금액이 작은 순서대로 먼저 사준다.

  • sort() 함수를 이용하여 d배열을 오름차순으로 정렬

2. 반복문을 돌려서 d배열을 순회하여 금액을 더하는데 금액이 예산을 넘지 않으면 더하고 예산을 넘으면 더 이상 구매할 수 없으니 return한다.

  • 이 때, 더하는 게 가능한 경우 answer의 값을 +1씩 증가시켜준다.

🖥️ 코드

function solution(d, budget) {
    let answer = 0, sum = 0;
    d.sort((a, b) => a - b);
    for (let money of d) {
        if (sum + money <= budget) {
            answer++;
            sum += money;
        } else return answer;
    }
    return answer;
}
profile
안녕하세요!

0개의 댓글