본문 바로가기
Programming/Programmers

[프로그래머스] 징검다리 건너기 (Python)

by 데이터현 2021. 11. 16.

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

 

코딩테스트 연습 - 징검다리 건너기

[2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3

programmers.co.kr

 이진탐색으로 구현해야 풀리는 문제다

 

def step_stone(stones,num,k):
    cnt = 0
    for stone in stones:
        if stone - num <1:
            cnt +=1
        else:
            cnt = 0
        if cnt >= k:
            return False
    return True

def solution(stones, k):
    start = 1
    end = 200000000
    while (start <= end):
        mid = (start+end)//2
        if step_stone(stones,mid,k):
            start = mid +1
        else:
            end = mid -1
    return start

댓글