문제
https://www.acmicpc.net/problem/2805
문제풀이
탐색 공간 범위도 문제가 알아서 지정해줬고, 식 세우는 것도 쉬웠다.
문제에서 식 세우는 것을 어렵게 꼬아낼 때, 이분탐색 난이도가 급격하게 올라가는 것 같다.
작성한 코드
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long m = sc.nextLong();
long[] tree = new long[n];
for(int i = 0; i < n; i++) {
tree[i] = sc.nextLong();
}
long left = 0;
long right = 1000000000;
long answer = 0;
while(left <= right) {
long mid = (left + right) / 2;
long guessM = 0;
for(long height : tree) {
long remain = height - mid;
if( remain > 0) {
guessM += remain;
}
}
if(guessM >= m) {
answer = Math.max(answer, mid);
left = mid + 1;
} else {
right = mid - 1;
}
}
System.out.println(answer);
}
}
'개발 > 코테 TIL' 카테고리의 다른 글
[99클럽 코테 스터디 TIL#8일차] 백준 2644 촌수구하기 (1) | 2024.11.05 |
---|---|
[99클럽 코테 스터디 TIL#7일차] 프로그래머스 모음사전 (0) | 2024.11.04 |
[99클럽 코테 스터디 TIL#5일차] 백준 24444 (0) | 2024.11.02 |
[99클럽 코테 스터디 TIL#4일차] 백준 24479 (0) | 2024.11.01 |
[99클럽 코테 스터디 TIL#3일차] 프로그래머스 입국심사 (0) | 2024.10.31 |