• 문제 링크
6236번: 용돈 관리
현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
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 = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int[] arr = new int[n];
int low = 0, high = 1000000000;
while (n-- > 0)
low = Math.max(low, arr[n] = Integer.parseInt(br.readLine()));
while (low <= high) {
int mid = (low + high) / 2;
int sub = mid, cnt = 1;
for (int i : arr) {
if (i > sub) {
sub = mid;
cnt++;
}
sub -= i;
}
if (cnt > m) low = mid + 1;
else high = mid - 1;
}
bw.write(String.valueOf((low)));
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 15810 풍선 공장 - BinarySearch / Java (0) | 2023.06.17 |
---|---|
[백준] 1166 선물 - BinarySearch / Java (0) | 2023.06.16 |
[백준] 1654 랜선 자르기 - BinarySearch / Java (0) | 2023.06.14 |
[백준] 2417 정수 제곱근 - BinarySearch / Java (0) | 2023.06.13 |
[백준] 2805 나무 자르기 - BinarySearch / Java (0) | 2023.06.12 |
댓글