https://www.acmicpc.net/problem/1806
# 2023.02.04
import sys
input = sys.stdin.readline
n, s = map(int, input().split()) # 수열의 길이, 합 S이상이 되는 것 중 가장 짧은 것의 길이
a = list(map(int, input().split())) # 수열
left, right = 0, 0
answer=10**9
tmp=0
while True:
if tmp>=s:
answer=min(answer, right-left)
tmp-=a[left]
left+=1
elif right==n:
break
else:
tmp+=a[right]
right+=1
if answer==10**9:
print(0)
else:
print(answer)
'Problem Solving > BOJ' 카테고리의 다른 글
[DP] python 2156 포도주 시식 (0) | 2023.02.07 |
---|---|
[Binary Search] python 10815 숫자 카드 (0) | 2023.02.05 |
[문자열] python 20437 문자열 게임2 (2) | 2023.02.03 |
[DP] python 1309 동물원 (0) | 2023.02.03 |
[DP] python 12852 1로 만들기2 (0) | 2023.02.01 |