[프로그래머스] 연속된 부분 수열의 합

 

문제

def solution(sequence, k):
    answer = []
    st = 0
    fi = 0
    cur_sum = 0
    min_len = len(sequence)
    while fi < len(sequence):
        cur_sum += sequence[fi]  
        while cur_sum > k and st <= fi:  # 합이 k를 초과하면 시작점을 이동
            cur_sum -= sequence[st]
            st += 1
        if cur_sum == k:  # 조건을 만족하는 구간을 찾은 경우
            if fi - st < min_len:  # 최소 길이를 갱신
                min_len = fi - st
                answer = [st, fi]
        fi += 1

    return answer