728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/12982?language=javascript 

 

코딩테스트 연습 - 예산

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

programmers.co.kr

 

코드


function solution(d, budget) {
    let answer = 0;
    d.sort((a,b) => (a-b)); //오름차순 정렬

    for (let i of d) {
        if (i > budget) break; //배열의 원소가 budget보다 크다면 break
        else {
            budget -= i; //배열의 원소가 budget보다 크거나 같아질때까지 원소를 계속 빼기
            answer++; //정답 count 올리기
        }
    }
    return answer;
}

 

후기


  • 그리디 알고리즘을 이용하여 풀 수 있는 문제중에 쉬운 문제였다
  • 근데 처음에 if else 문 말고 while문으로 접근을 했었고, answer에 d의 요소들을 더해나가는 방식으로 알고리즘을 짰는데 왜인지 오류가 나서 빼주는 방식으로 접근을 달리 했더니 쉽게 해결할 수 있었다!

+ Recent posts