728x90
https://www.acmicpc.net/problem/2805
메모리: 119,416 KB , 시간: 492 ms
사용 알고리즘: 이분 탐색, 매개 변수 탐색
728x90
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] trees = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
trees[i] = Integer.parseInt(st.nextToken());
}
// 이분 탐색
int s = 0, e = 1_000_000_000, m;
long sum;
int result = 0;
while(s <= e) {
m = (s + e) / 2;
sum = 0;
for(int tree : trees) {
sum += tree - m <= 0 ? 0 : tree - m;
}
if(sum >= M) {
result = m;
s = m + 1;
} else e = m - 1;
}
System.out.println(result);
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 17608] 막대기 (java) (1) | 2024.09.05 |
---|---|
[백준, BOJ 2075] N번째 큰 수 (java) (0) | 2024.09.03 |
[백준, BOJ 12605] 단어순서 뒤집기 (java) (0) | 2024.09.01 |
[백준, BOJ 27434] 팩토리얼 3 (java) (0) | 2024.09.01 |
[백준, BOJ 7795] 먹을 것인가 먹힐 것인가 (java) (0) | 2024.08.31 |