https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
import java.util.*;
import java.io.*;
public class Main {
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;
st = new StringTokenizer(br.readLine());
int k = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
long[] lans = new long[k];
for(int i=0; i<k; i++) {
st = new StringTokenizer(br.readLine());
lans[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(lans);
long maxlen = 0;
long htarget = lans[k-1];
long ltarget = 1;
while(true) {
if(ltarget>htarget) break;
int sum = 0;
long mid = (htarget+ltarget)/2;
for(int i=0; i<k; i++) {
sum+=lans[i]/mid;
}
if(sum>=n) {
maxlen = mid;
ltarget=mid+1;
}
else if(sum<n) {
htarget=mid-1;
}
}
bw.write(maxlen+"");
bw.close();
}
}
'백준' 카테고리의 다른 글
백준 이분탐색 - 1920번 : 수 찾기 (0) | 2022.03.02 |
---|---|
백준 스택 - 1874번 : 스택 수열 (0) | 2022.02.28 |
백준 동적계획법 - 1463번 : 1로 만들기 (0) | 2022.02.27 |
백준 동적계획법 - 2579번 : 계단 오르기 (0) | 2022.02.17 |
백준 동적계획법 - 1932번 : 정수 삼각형 (0) | 2022.02.17 |