업데이트:

문제 링크

백준 25496번 - 장신구 명장 임스 (Bronze 1)

문제 설명

각각의 장신구를 만드는데 피로도 $A_i$가 누적된다.
피로도가 200 이상이면 새 장신구를 제작할 수 없다.
현재 쌓인 피로도가 P일 때, 최대 몇 개의 장신구를 제작할 수 있는가?
단, 한 종류의 장신구는 한 개만 만들 수 있다.

정답 코드 및 설명

장신구를 피로도가 적게 드는 것부터 순차적으로 제작하면 된다.
도중에 피로도가 200을 넘어간다면 중단한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    static final int MAX = 200;
    int p, n;
    int[] arr;

    void input() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        p = Integer.parseInt(st.nextToken());
        n = Integer.parseInt(st.nextToken());
        arr = new int[n];
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(arr);
    }

    void solution() throws IOException {
        input();
        int count = 0;
        while(p < MAX && count < n) {
            p += arr[count];
            count++;
        }
        System.out.println(count);
    }

    public static void main(String[] args) throws IOException {
        new Main().solution();
    }
}

댓글남기기