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

김종혁·2023년 5월 6일
0

알고리즘

목록 보기
4/7

연속된 부분 수열의 합 - Lv2

# 투포인터로 풀었습니다.
def solution(sequence, k):
    start, end = 0, 0
    value = sequence[start]
    min_length = 987654321
    answer = []

    while start < len(sequence) and end < len(sequence):
        if value < k:
            if end + 1 < len(sequence):  
                end += 1
                value += sequence[end]
            else:
                break  # 배열의 끝에 도달하면 반복문을 종료합니다.
        elif value > k:
            value -= sequence[start]
            start += 1
        else:
            length = end - start
            if length < min_length:
                min_length = length
                answer = [start, end]
            value -= sequence[start]
            start += 1

    return answer
profile
세상을 한 걸음씩 발전시키고 싶습니다.

0개의 댓글