chyam

[프로그래머스 Lv3, python] - 징검다리 건너기 본문

프로그래머스/LV3

[프로그래머스 Lv3, python] - 징검다리 건너기

chyam_eun 2026. 5. 7. 16:55

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

from collections import deque

def solution(stones, k):
    # k 크기 윈도우에서 최댓값들 중 최솟값 찾기
    dq = deque()
    result = float('inf')

    for i in range(len(stones)):
        # 윈도우 크기 유지
        if dq and dq[0] < i - k + 1:
            dq.popleft()

        # 현재 값보다 작은 인덱스 제거 (최댓값 유지하기 위해서.)
        while dq and stones[dq[-1]] < stones[i]:
            dq.pop()

        dq.append(i)

        # 윈도우가 k 크기가 되면 최댓값 확인
        if i >= k - 1:
            result = min(result, stones[dq[0]])

    return result