[JavaScript][Programmers] 예산

조준형·2021년 9월 2일
0

Algorithm

목록 보기
113/142
post-thumbnail

🔎 예산

❓ 문제링크

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를 정답으로 도출하였다.

profile
깃허브 : github.com/JuneHyung

0개의 댓글