반응형
[광고 누르면 오늘의 행운 상승!!]
https://www.acmicpc.net/problem/2343
이분탐색 문제
1. 임의의 블루레이 크기 mid를 정한다.
2. 이분탐색을 시작하여 mid보다 작은 갯수를 구한다.
3. 구한 갯수가 m보다 작다면 최대값을 감소시킨다.
4. 반대의 경우 최솟값을 감소시킨다.
package Study0316;
import java.util.*;
public class 기타레슨 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int a[] = new int[n];
int left = 0;
int right = 0;
for(int i=0; i<n; i++) {
a[i] = sc.nextInt();
right += a[i];
left = left < a[i] ? a[i] : left;
}
while(left <= right) {
int mid = (left + right)/2;
int sum = 0;
int cnt = 0;
for(int i=0; i<n; i++) {
if(sum + a[i] > mid) {
sum = 0;
cnt++;
}
sum += a[i];
}
if(sum != 0) cnt++;
if(cnt <= m) right = mid-1;
else left = mid+1;
}
System.out.println(left);
}
}
반응형
'2. 알고리즘사이트 > 1. 백준' 카테고리의 다른 글
트리 순회 [백준 1991][JAVA][실버1][트리][Tree] (0) | 2020.03.22 |
---|---|
테이블 옮기기 [백준 7348][JAVA][실버3][그리디] (0) | 2020.03.22 |
문서 검색 [백준 1543][실버 4][String][Java] (0) | 2020.03.17 |
만취한 상범[백준 6359][브론즈2][Java] (0) | 2020.03.11 |
이분 그래프 [백준 1707][골드4][Java] (1) | 2020.03.11 |