JasonScript

Jason's Research Blog

Development/Algorithm

< 알고리즘 문제 풀이 > 연속된 부분 수열의 합

jason.bak 2023. 12. 5. 20:07

문제 링크 >  코딩테스트 연습 - 연속된 부분 수열의 합 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

솔루션 >

def solution(sequence, k):
    answer = []
    
    n = len(sequence)
    start, end = 0, 0
    for i in range(n):
        while start < k and end < n:
            start += sequence[end]
            end += 1
        if start == k:
            answer.append([i, end - 1])
        start -= sequence[i]
        
    answer.sort(key = lambda x: x[1]-x[0])

    return answer[0]