반응형
풀이
- 진짜 단순한 이분 탐색 문제로
- 각 지방 예산 요청을 정렬 후 이분 탐색 하여 해결
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] li = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Arrays.sort(li);
int m = Integer.parseInt(br.readLine());
int result = 0;
// 이분 탐색
int s = 0;
int e = li[n-1];
while (s<=e) {
int mid = (s+e)/2;
int hap = 0;
for (int num: li) {
if (num>mid) hap += mid;
else hap += num;
}
if (m>=hap) {
result = mid;
s = mid+1;
} else e = mid-1;
}
System.out.println(result);
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1072번] 게임 (이분 탐색) (0) | 2024.08.27 |
---|---|
[백준, 자바, 10988번] 팰린드롬인지 확인하기 (0) | 2024.08.27 |
[백준, 자바, 2110번] 공유기 설치(이분 탐색) (0) | 2024.08.24 |
[백준, 자바, 10989번] 수 정렬하기 3 - 도수 정렬(Counting Sort) (0) | 2024.08.03 |
[프로그래머스] 코딩 기초 트레이닝 (각 문제 별 답) -1 (2) | 2024.06.18 |