[Algorithm - Programmers] 징검다리 건너기

nunu·2023년 12월 21일
0

Algorithm

목록 보기
136/142

https://school.programmers.co.kr/learn/courses/30/lessons/64062

제출 코드

class Solution {
    public int solution(int[] stones, int k) {
        int answer = 0;
        int left = 1;
        int right = 200000000;
        while (left <= right) {
            int mid = (left + right) / 2;
            if (check(stones, k, mid)) {
                answer = Math.max(mid, answer);
                left = mid + 1;
            }
            else {
                right = mid - 1;
            }
        }
        return answer;
    }
    boolean check(int[] stones, int k, int num) {
        int skip = 0;
        for (int stone : stones) {
            if (stone - num < 0) {
                skip++;
            }
            else {
                skip = 0;
            }
            if (skip == k)
                return false;
        }
        return true;
    }
}
profile
Hello, I'm nunu

0개의 댓글