비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다.
수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다.
def solution(sequence, k):
last = len(sequence)-1
sequence.reverse()
total = 0
start = -1
for i, iv in enumerate(sequence):
total += iv
if start < 0 : start = i
if total > k :
total -= sequence[start]
start += 1
if total == k and (i == last or sequence[i+1] != sequence[start]): return [last-i, last-start]