일단 카카오 문제인거 보고 문제에 효율성 체크가 있나 확인했다.
효율성이 있는걸 보고 한명씩 건너서 체크하는건 절대 아니라 생각했고 최근에 이분탐색 문제를 많이 풀어서 그런지 바로 이분탐색이 떠올랐음
처음 풀었을때 효율성 통과를 못했는데 약간만 수정하니 효율성 까지 통과
import java.lang.Math.*
class Solution {
fun solution(stones: IntArray, k: Int): Int {
var min = 0
var max = 200000000
while(min<=max){
var mid = (min+max)/2
var check = findZero(stones,mid,k)
if(check){
min = mid+1
}
else{
max = mid-1
}
}
return min
}
private fun findZero(list: IntArray,mid :Int, k : Int): Boolean {
var cnt =0
for(i in list.indices){
if(list[i]-mid<=0){
cnt++
}
else{
cnt=0
}
if(cnt==k){
return false
}
}
return true
}
}