문제 소개
풀이
import java.util.Arrays;
public class Pr12982 {
public int solution(int[] d, int budget) {
int answer = budget;
Arrays.sort(d);
for(int i = 0; i < d.length; i++) {
answer -= d[i];
if(answer < 0) {
return i;
} else if (answer == 0) {
return i+1;
}
}
return d.length;
}
}
- sort() 후 정렬된 숫자 배열을 통해 작은 수 부터 빼는 식으로 해결하였다.
- 3가지의 경우의 수를 찾아 return 해주었다. (위에서
answer -= d[i]
를 했을 때)
- answer이 0보다 작을 때, 뺀 순간은 제외하고 n-1번 반복 했으므로
return i;
- answer이 0일 때, 뺀 순간까지 n번 지원이 가능하므로
return i+1;
- 배열의 값을 모두 뺐는데 0보다 클 때, 모든 부서에 지원할 수 있으므로
return d.length;
- 경우의 수를 나눠 return 을 했지만, count 변수를 선언하여 반환하는 것이 헷갈리지 않고 괜찮을 것 같다.