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

gmlwlswldbs·2021년 11월 26일
0

코딩테스트

목록 보기
85/130
def solution(stones, k):
    start = min(stones)
    end = max(stones)
    while start < end:
        mid = (start + end) // 2
        for i in range(len(stones)-(k-1)):
            t = max(stones[i:i+k])
            # 건널 수 없음 -> 왼쪽 탐색 다음 단위 탐색
            if t < mid:
                end = mid - 1 
                break
            # 건널 수 있음 -> 오른쪽 탐색 ㅇㅕ기서 탐색 끝냄
            else:
                start = mid
    return end

????!!!

def solution(stones, k):
    start = min(stones)
    end = max(stones)
    # start < end ?
    while start <= end:
        mid = (start + end) // 2
        zero = 0
        for stone in stones:
            if stone - mid <= 0:
                zero += 1
            else:
                zero = 0
            # 못건넘
            if k == zero:
                break
        # 못건너는 경우
        if k == zero:
            end = mid - 1
        # 건넘
        # start = mid?
        else:
            start = mid + 1
        
    return start

0개의 댓글