이것이 코딩테스트다. 그리디 - 큰 수의 법칙 (java)

2022. 12. 30. 18:54코딩테스트/이것이 코딩테스트다

입력 조건

- 첫째 줄에 N(2 <= N <=1000), M( 1 <= M <= 10000), K(1 <= K <= 10000)의 자연수가 주어지며 각 자연수는 공백으로 구분한다.

 

- 둘쨰 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단 각각의 자연수는 1 이상 10000 이하의 수로 주어진다.

- 입력으로 주어지는 K는 항상 M보다 작거나 같다.

 

출력 조건 

- 첫째 줄에 동빈이의 큰 수의 법칙에 따라 더해진 답을 출력한다.

 

입력 예시

5 8 3

2 4 5 4 6

 

출력 예시

46

 

public class greedy2 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int k = scanner.nextInt();
        int[] arr = new int[n];
        int sum = 0;

        for (int i= 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }

        Arrays.sort(arr);

        int first = arr[n - 1];
        int second = arr[n - 2];

        for (int i = 0; i < m; i++) {
            sum += (i % 3 == 0 && i != 0) ? second : first;
        }

        System.out.println("sum : "+ sum);
    }
}