본문 바로가기
Programming/알고리즘

[java, 알고리즘, 그리디] :: 큰 수의 법칙

by 구튼탁 2021. 2. 14.
728x90

교재 : 이것이 코딩테스트다

package com.algorithm.greedy;

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class GreedyEx01 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken()); // 입력받을 숫자의 갯수
        int M = Integer.parseInt(st.nextToken()); // 더할 횟수
        int K = Integer.parseInt(st.nextToken());

        int [] arr = new int[N];

        StringTokenizer st2 = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i++){
            arr[i] = Integer.parseInt(st2.nextToken());
        }

        Arrays.sort(arr);
        int first = arr[arr.length - 1];
        int second = arr[arr.length - 2];
        int result = 0;
        int count = 0;

        for(int i = 0; i < M; i++){

            if(count < K){
                result += first;
                count++;
            }
            else{
                result += second;
                count = 0;
            }
        }
        System.out.println(result);
    }
}

   

다른 풀이 방법

scshim.tistory.com/225

 

[Algorithm] 그리디 알고리즘 문제 풀이 - 큰 수의 법칙

그리디 알고리즘 문제 풀이 - 큰수의법칙 '이것이 취업을 위한 코딩 테스트다 with 파이썬' 이라는 책을 공부 중입니다. 이 글은 해당 책에서 그리디 알고리즘 문제 중 '큰수의 법칙' 문제와 풀

scshim.tistory.com

 

728x90

댓글