Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1654] 랜선 자르기 본문
반응형
기본적인 이분탐색에서 한번 꼬아낸 문제이다.
각 랜선의 길이 : L
나눌 단위 길이 : D
일때,
L / D 의 합이 K 를 만족하는 선에서 최대 길이를 구해야 한다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
int n = sc.nextInt();
int a[] = new int[k];
for(int i=0; i<k; i++)
a[i] = sc.nextInt();
long low = 0;
long high = (1 << 31) - 1;
while(low <= high) {
long mid = (low + high)/2;
int cnt = 0;
for(int i=0; i<k; i++)
cnt += a[i] / mid;
if(cnt < n) high = mid - 1;
else low = mid + 1;
}
System.out.println(high);
}
}
코드는 정말 간단하다.
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 1120] 문자열 (0) | 2019.05.11 |
---|---|
[백준 2875] 대회 or 인턴 (0) | 2019.05.11 |
[백준 2512] 예산 (0) | 2019.05.10 |
[백준 2805] 나무 자르기 (0) | 2019.05.10 |
[백준 2606] 바이러스 (0) | 2019.05.10 |
Comments