슈콩

[BOJ] 백준 1654 랜선 자르기 본문

Algorithms/Baekjoon

[BOJ] 백준 1654 랜선 자르기

shukong 2025. 9. 16. 22:42

[문제]

https://www.acmicpc.net/problem/1654

 

 

[소스 코드]

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int[] lans = new int[k];
		long max = 0;
		for(int i=0;i<k;i++) {
			lans[i] = Integer.parseInt(br.readLine());
			max = Math.max(max, lans[i]);
		}
		max++;
		
		long min = 0;
		long mid = 0;
		while(min<max) {
			mid = (max+min) / 2;
			
			long cnt = 0;
			for(int i=0;i<lans.length;i++) {
				cnt += (lans[i] / mid);
			}
			if(cnt<n) {
				max = mid;
			}
			else {
				min = mid + 1;
			}
		}
		System.out.println(min - 1);
	}
}