본문 바로가기

Algorithm/프로그래머스

[프로그래머스] 예산 - Java

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

 

코딩테스트 연습 - 예산

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

programmers.co.kr

아니 이걸 왜 DP라고 생각하고 끙끙댔지 ㅋㅋㅋㅋ

어떤지 난이도 1에 있는게 이상하다 싶었다

 

이 문제는 그리디로 접근하면 된다.

일단 d를 오름차순으로 정렬하고 budget이 넘지 않을때까지 첫번째 원소부터 선택해나가면 된다.

결론은 매우 간단한 문제였다..

 

import java.util.Arrays;

class Solution {
    public int solution(int[] d, int budget) {
        Arrays.sort(d);

        int sum = 0;
        int i;

        for (i = 0; i < d.length; i++) {
            if (sum + d[i] > budget) break;

            sum += d[i];
        }

        return i;
    }
}