2026.03.28 토

권순찬·2026년 3월 28일

천천히 꾸준히

목록 보기
25/50

오늘의 문제!

Allocation_23895

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초에 서브태스크 문제고 이러길래 뭐지 많이 어렵나? 했는데 너무 쉽게 풀린 문제.

그냥 정렬시켜서 순차적으로 안 빼질때까지 예산에서 빼고 카운트 출력하면 끝이다. 뭐지..

profile
아직 많이 서툰 개발자

0개의 댓글