Lv2 프로그래머스(Programmers)[Python][파이썬] 연속된 부분 수열의 합


"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/178870
"""

# 풀이 과정
def solution(sequence, k):
a = 0
b = 0
c = 0
result = []

while True:
if a == 0 and b == 0 and c == 0:
c += sequence[a]
if c == k:
result.append([a, b])
else:
if c < k:
b += 1
if b > len(sequence) - 1:
break
c += sequence[b]
else:
c -= sequence[a]
if a > len(sequence) - 1:
break
a += 1
if c == k:
result.append([a, b])

result.sort(key=lambda x: ([x[1] - x[0], x[0]]))

return result[0]