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

박형진·2022년 1월 25일
0

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


1. 전체 코드

def solution(stones, k):
    result = 0
    left, right = 1, max(stones)
    while left <= right:
        mid = left + (right - left) // 2
        skipped_stone = 0
        flag = True
        for stone in stones:
            if stone < mid:
                skipped_stone += 1
                if skipped_stone == k:
                    flag = False
            else:
                skipped_stone = 0
        if flag:
            result = mid
            left = mid + 1
        else:
            right = mid - 1
    return result

2. 후기


문제 풀이에 이진 탐색을 떠올리는 것이 중요하다. 주어진 조건의 범위가 무지막지하게 클 경우 바로 의심을 해보자.

입국 심사 문제 또한 이 문제와 비슷한 조건과 풀이 형태를 가진다.

profile
안녕하세요!

0개의 댓글