๋ฌธ์
๋๋ฌด ์๋ฅด๊ธฐ
์ ๋ต
import java.util.*;
class Main {
static int n; // ๋๋ฌด์ ์
static int m; // ๊ฐ์ ธ ๊ฐ๋ ค๋ ๊ธธ์ด
static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int left = 0;
int right = arr[arr.length - 1];
int answer = 0;
while(left <= right) {
int mid = (left + right) / 2;
long sum = 0;
for(int i = 0; i < arr.length; i++) {
if(arr[i] > mid) sum += arr[i] - mid;
}
if(sum >= m) {
answer = mid;
left = mid + 1;
} else {
right = mid - 1;
}
}
System.out.println(answer);
}
}
- ์ด๋ถ ํ์์ ์ด์ฉํด์ ํธ๋ ๋ฌธ์ ์
๋๋ค.
- ์ด๋ถ ํ์์ ๊ตฌํํ๋๋ฐ ์ฝ๊ฐ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค.
- sum์ด 9์๋ฆฌ๋ฅผ ๋์ ์ ์๊ธฐ ๋๋ฌธ์ long์ ์ฌ์ฉํฉ๋๋ค.