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;
}
}
'Language > JAVA' 카테고리의 다른 글
[프로그래머스] K번째수 #Arrays.copyOfRange (0) | 2022.07.01 |
---|---|
[디자인패턴]controller pathvariable로 service 구현체 주입하기 (0) | 2022.06.16 |
[Java with Unit Test] equals와 hashCode (0) | 2022.06.16 |
[프로그래머스] 신규 아이디 추천 (0) | 2022.01.29 |
[프로그래머스] 시저 암호 (0) | 2022.01.27 |