문제 링크 : 예산
public int solution(int[] d, int budget) {
int answer = 0;
int sum = 0;
Arrays.sort(d);
for(answer = 0; answer < d.length; answer++){
sum += d[answer];
if(sum > budget){
break;
}
}
return answer;
}
최대한 많은 부서에 예산을 지원해줘야 하므로, 예산 사용량이 적은 부서부터 지원해주면 된다.
따라서 부서별 예산 d를 오름차순으로 정렬한다. 그 후 배열의 처음부터 값을 더한 후, 그 값이 매개변수로 전달된 budget의 값보다 크다면, 현재의 인덱스 값을 반환하는 것으로 풀이가 종료된다.