투 포인터를 활용한 코드
import sys
N, S = map(int, sys.stdin.readline().split())
data = list(map(int, sys.stdin.readline().split())) + [0]
start, end = 0, 1
answer = float('inf')
temp = data[0]
while start < end < N+1:
if temp >= S:
if answer > end - start:
answer = end - start
temp -= data[start]
start += 1
else:
temp += data[end]
end += 1
print(answer if answer != float('inf') else 0)
'파이썬 코테 준비' 카테고리의 다른 글
[백준 14002] 가장 긴 증가하는 부분 수열 4 - Python(파이썬) (0) | 2021.04.03 |
---|---|
[백준 1644] 소수의 연속합 - Python(파이썬) (0) | 2021.04.03 |
[백준 1305] 광고 - Python(파이썬) (0) | 2021.03.31 |
[백준 11050] 이항 계수 1 - Python(파이썬) (0) | 2021.03.31 |
[백준 11051] 이항 계수 2 - Python(파이썬) (0) | 2021.03.31 |
댓글