응애개발자
article thumbnail
728x90

문제

 

1654번: 랜선 자르기

첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그

www.acmicpc.net


 

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    private static StringBuilder sb;
    private static BufferedReader br;
    private static StringTokenizer st;
    private static int K,count;
    private static int[] arr;
    private static int max = -1;

    //입력
    public static void input() throws Exception {
        br = new BufferedReader(new InputStreamReader(System.in));
        sb = new StringBuilder();

        st = new StringTokenizer(br.readLine());
        K = Integer.parseInt(st.nextToken());
        count = Integer.parseInt(st.nextToken());

        arr = new int[K];
        for(int i = 0 ; i < K ; i++){
            arr[i] = Integer.parseInt(br.readLine());
            max = Math.max(max, arr[i]);
        }
    }

    //실행
    public static void process() {
        long s = 1;
        long e = max;

        while(s<=e){
            long mid = (s+e)/2;

            int cnt = 0;

            for(int i = 0 ; i < K ; i++){
                cnt+=arr[i]/mid;
            }

            if(cnt>=count){
                s = mid+1;
            }else{
                e = mid-1;
            }
        }
        System.out.println(e);
    }


    public static void main(String[] args) throws Exception {
        input();
        process();
    }
}
profile

응애개발자

@Eungae-D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!