Algorithms/Greedy Algorithm

[투 포인터 알고리즘] 부분합

잉숭 2021. 9. 7. 15:52

기출: 백준 1806

 

n, s = map(int,input().split())
arr = list(map(int,input().split()))

ans = int(1e9)

st, en = 0, 0
sum = arr[0]

while en<n:
    if sum >= s:
        while st<=en and sum >= s:
            ans = min(ans, en-st+1)
            sum -= arr[st]
            st += 1
    else:
        en += 1
        if en<n:
            sum += arr[en]


if ans == int(1e9):
    ans = 0

print(ans)