Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Tags
more
Archives
Today
Total
관리 메뉴

forDevLife

[이코테]만들 수 없는 금액 <그리디> 본문

알고리즘

[이코테]만들 수 없는 금액 <그리디>

JH_Lucid 2021. 5. 3. 14:53
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        long beforeTime = System.nanoTime();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int num = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int[] arr = new int[num];
        for(int i=0; i<num; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(arr);
        int target = 1;
        for(int i=0; i<num; i++) {
            if(target < arr[i])
                break;
            else
                target += arr[i];
        }
        System.out.println(target);

        long afterTime = System.nanoTime();
        System.out.println("시간 : " + (afterTime-beforeTime)/1000000+"ms");
    }
}

- target보다 작을 경우, 내부 배열안에서 해당 값을 감당(더해서 구할) 수 있다.

- target보다 클 경우, 해당 target은 만들지 못하는 값이 되어, 정답이 된다.

Comments