Language/JAVA

[프로그래머스] 예산

paran21 2022. 7. 15. 16:29

 

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

이 문제의 포인트는 두 가지이다.

 

1. 예산을 가장 많이 지급하려면, 신청한 금액이 적은 부서들에게 지급하면 된다. → 정렬

2. 지급한 금액이 budget 보다 크면 더 이상 지급할 수 없다. → break

 

import java.util.Arrays;

class Solution {
public int solution(int[] d, int budget) {
            int answer = 0;
            int sum = 0;
            
            //1. 정렬
            Arrays.sort(d);
            
            for (int i = 0; i < d.length; i++) {
                sum += d[i];
                //2-1. 지급한 금액이 budget보다 커지면 break;
                if (sum > budget) {
                    break;
                }
                //2-2. 그 외에는 지급한 부서 수(answer) 증가
                answer++;
            }
            return answer;
        }
}