문제 출처 - Programmers
문제는 여기
[풀이]
1. 예산 신청 배열을 정렬한다.
2. 배열만큼 반복하면서 budget보다 작은 값이라면 budget에서 값을 빼고 answer을 증가시켜준다.
3. budget이 0보다 작아지면 탐색을 종료한다.
4. 결과를 출력한다.
[접근]
1. 가장 많은 부서에 지원을 해줘야 하므로 요구 금액이 적은 순으로 정렬해서 해당 금액만큼 지원을 해주면 되겠다고 생각하였다.
[코드]
import java.util.*;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
Arrays.sort(d);
for (int i = 0; i < d.length; i++) {
if (d[i] <= budget) {
answer++;
budget -= d[i];
}
if (budget <= 0)
break;
}
return answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 야근 지수 (JAVA) (0) | 2022.10.03 |
---|---|
[프로그래머스] 소수 만들기 (JAVA) (0) | 2022.06.01 |
[프로그래머스] 폰켓몬 (JAVA) (0) | 2022.05.31 |
[프로그래머스] 단어 변환 (JAVA) (0) | 2022.05.29 |
[프로그래머스] 최대공약수와 최소공배수 (JAVA) (0) | 2022.05.28 |