JAVA/Algorithm

[프로그래머스/java] 예산 (Summer/Winter Coding 2018)

nang. 2020. 12. 16. 22:11
반응형
SMALL

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

 

코딩테스트 연습 - 예산

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

programmers.co.kr

 

  • 문제의 핵심!
            꼭 예산을 0만큼 남기라는 것이 아니라 나눌 수 있는 최대 부서면 된다는 것
            그렇다면 작은 금액부터 나누어주는 방식이면 최대로 나누어줄 수 있겠지!
            그래서 정렬부터 해주고 시작한다.

 

import java.util.*;

class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0;
        
        int sum = 0;
        
        /* 문제의 핵심!
        꼭 예산을 0만큼 남기라는 것이 아니라 나눌 수 있는 최대 부서면 된다는 것
        그렇다면 작은 금액부터 나누어주는 방식이면 최대로 나누어줄 수 있겠지!
        그래서 정렬부터 해주고 시작한다.
        */
        
        Arrays.sort(d);
        
        for(int i = 0; i < d.length; i++) {
            if(sum + d[i] > budget) { // 예산 초과되면 그만
                break;
            }
            
            sum += d[i];
            answer++;
        }
        
        return answer;
    }
}
반응형
LIST