이전에 풀다가 만 문제였는데 아무리 생각해도 이게 이분탐색이라는 생각이 떠오르지가 않아 힌트를 보았다.
시간을 기준으로 해당 시간내에 모두 검사가 가능한지 판단하고 시간에 대해 이분탐색을 적용하는 방식이었다.
코테에 나왔으면 이분탐색 절대 생각 못했다
class Solution {
fun solution(n: Int, times: IntArray): Long {
var min = 0L
var max = times.maxOrNull()!!.toLong()*n.toLong()
while(min<=max){
val mid = (min + max)/2
var sum = 0L
times.forEach{
sum += mid/it
}
if(sum<n){
min = mid+1
}
else{
max = mid -1
}
}
return max+1
}
}