문제 : https://www.acmicpc.net/problem/2512
⭐️이진탐색⭐️
지역 예산의 최대값을 이진탐색으로 구현
🗝️지역 예산 최소(left): 0
🗝️지역 예산 최대(right) : 지역별 예산 중 최대값
int right = Arrays.stream(budgets).max().getAsInt();
int left =0;
while(left<=right){
int mid = (right+left)/2;
long sum = 0;
for (int budget : budgets) {
sum += Math.min(budget, mid);
}
if(sum<=totalBudget){
result = mid;
left = mid+1; // 지역 예산 상한액 늘리기↑
}else{
right = mid-1;
}
}