[2021-07-13] 예산

2021. 7. 13. 11:40코딩테스트

푼 시간 : 5분

언어 : 자바

 


 

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

 

코딩테스트 연습 - 예산

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

programmers.co.kr

 

탐욕법이라고 생각했지만

그냥 쉽게 생각했다.

어차피 모든 부서가 작은값부터 들어가야 최대가 될수 있기에

그냥 다른거 안 넣었다..

지문 참 어렵게 풀어 쓴 거 같다.

 

import java.util.*;

class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0;
        int temp=0;
        // 더할 상자
        Arrays.sort(d);
        // 작은거부터 더하려고 정렬함
        
        for(int i=0; i<d.length; i++){
            if(temp+d[i]<=budget){
            // 예산을 초과하지 않은 경우
                temp+=d[i];
                answer++;
            }
            else
            // 초과하면 바로 컷
                break;
        }
        
        return answer;
    }
}

요새 temp를 상자라고 생각하고 코딩하는 것 같다.