728x90
😉 아이디어
1. 투포인터 활용 👉 포인터 사이의 값을 유지 및 관찰, 조건 일치 시 리스트에 저장
2. 리스트 정렬 기준 '인덱스의 값 차이(갭)', '첫번째 인덱스'
😉 풀이
def solution(sequence, k):
answer = []
# 투포인터 + 누적합
l = 0
r = 0
lst = []
mx = len(sequence)
summ = sequence[l]
while l < mx:
# print('l, r = ' + str(l) + ', ' + str(r) + ', summ = ' + str(summ))
if summ == k:
lst.append([l, r])
if r + 1 < mx and summ < k:
r += 1
summ += sequence[r]
elif l + 1 < mx:
summ -= sequence[l]
l += 1
else:
break
lst.sort(key = lambda x : (x[1] - x[0], x[0]))
return lst[0]
✔ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/178870?language=python3