프로그래머스 Lv3 징검다리 건너기 Kotlin

Android Chen·2022년 4월 10일
0

문제

설명

  • 일단 카카오 문제인거 보고 문제에 효율성 체크가 있나 확인했다.

  • 효율성이 있는걸 보고 한명씩 건너서 체크하는건 절대 아니라 생각했고 최근에 이분탐색 문제를 많이 풀어서 그런지 바로 이분탐색이 떠올랐음

  • 처음 풀었을때 효율성 통과를 못했는데 약간만 수정하니 효율성 까지 통과

코드

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
    }
}
profile
https://github.com/Userz1-redd

0개의 댓글