오늘의 문제!
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Allocation_23895 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int[] arr = new int[n];
int cnt = 0;
for (int j = 0; j < n; j++) {
arr[j] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
for (int k = 0; k < n; k++) {
if (arr[k] <= b) {
cnt++;
b -= arr[k];
} else {
break;
}
}
bw.write("Case #" + (i + 1) + ": " + cnt + "\n");
}
bw.flush();
bw.close();
}
}
제한시간이 15초에 서브태스크 문제고 이러길래 뭐지 많이 어렵나? 했는데 너무 쉽게 풀린 문제.
그냥 정렬시켜서 순차적으로 안 빼질때까지 예산에서 빼고 카운트 출력하면 끝이다. 뭐지..