Jun 개발노트

프로그래머스 - 예산

January 13, 2020

예산


  1. 이해

    • 예산한도내에서 최대한 많은 부서를 지원해주도록 하는 알고리즘
    • 요청한 예산이 1000원이면 1000만 지원, 금액이 다르면 지원불가
  2. 계획

    • 정렬을 한다.
    • 가능한 최선의 선택으로 지원한다(탐욕법??)
    • 테스트코드 작게 잘라보자
  3. 실행

        const getNumOfDep = (d, budget) => {
        const depArr = d.sort((a,b)=>a-b);
        let estimate = 0;
        let count = 0;
    
        for(let i = 0; i < depArr.length; i++){
            if((estimate + depArr[i]) <= budget){
                estimate += depArr[i];
                count++;
            }
        }
        
        return count;
    };
    
    test("예산", () => {
        expect(getNumOfDep([10,2,2,3,3], 10)).toEqual(4);
    });
  4. 반성

    • 어렵게 생각하지 말자. 탐욕법은 가장 최선의 선택을 하는것이다.
    • sort를 해줄때 꼭 콘솔에 찍어보자.
    • 조건식을 쓸떄는 괄호를 꼭 써주자

Written by Junho You 배운것을 기록하자