728x90
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) );
StringTokenizer st = new StringTokenizer( br.readLine() );
int n = Integer.parseInt( st.nextToken() );
int m = Integer.parseInt( st.nextToken() );
int t[] = new int[n], i, t_max = 0;
st = new StringTokenizer( br.readLine() );
for( i = 0; i < n; i++ ) {
t[i] = Integer.parseInt( st.nextToken() );
if( t_max < t[i] ) t_max = t[i];
}
br.close();
int low = 0, high = t_max, h = 0;
while( low <= high ) {
int mid = ( low + high ) / 2;
long res = 0;
for( i = 0; i < n; i++ )
if( t[i] >= mid )
res += t[i] - mid;
if( res >= m ) {
low = mid + 1;
if( h < mid )
h = mid;
}
else
high = mid - 1;
}
System.out.println( h );
}
}
( 랜선 자르기 문제와 비슷 hyunjiishailey.tistory.com/145 )
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] 1300 : K번째 수 / 이분 탐색 (0) | 2020.09.08 |
---|---|
[백준(Baekjoon)][자바(java)] 2110 : 공유기 설치 / 이분 탐색 (0) | 2020.09.08 |
[백준(Baekjoon)][자바(java)] 1654 : 랜선 자르기 / 이분 탐색 (0) | 2020.09.08 |
[백준(Baekjoon)][자바(java)] 10816 : 숫자 카드 2 / 이분 탐색 (0) | 2020.09.08 |
[백준(Baekjoon)][자바(java)] 1920 : 수 찾기 & 10815 : 숫자 카드 / 이분 탐색 (0) | 2020.09.08 |