6236번: 용돈 관리
현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로
www.acmicpc.net
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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 N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] A = new int[N];
int low = 1, high = 1000000000;
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(br.readLine());
low = Math.max(low, A[i]);
}
int answer = high;
while (low <= high) {
int mid = (low + high) / 2;
int count = 1;
int sum = A[0];
for (int i = 1; i < N; i++) {
if (sum + A[i] > mid) {
count++;
sum = 0;
}
sum += A[i];
}
if (count > M) {
low = mid + 1;
} else {
answer = Math.min(answer, mid);
high = mid - 1;
}
}
System.out.println(answer);
}
}
728x90
'알고리즘 > 이분탐색' 카테고리의 다른 글
[백준][JAVA] 3020번 개똥벌레 (0) | 2024.02.19 |
---|---|
[백준][JAVA] 2343번 기타 레슨 (0) | 2024.02.16 |
[백준][JAVA] 2467번 용액 (1) | 2023.12.18 |
[백준][JAVA] 2776번 암기왕 (1) | 2023.12.17 |