[알고리즘/백준] 1806번 : 부분합(python)

유현민·2022년 5월 12일
0

알고리즘

목록 보기
180/253

투포인터로 풀었다... 카카오 인턴 코테에서 배운걸 잘 써먹는 중이다.
인덱스를 계속 옮기면서 합을 구하고 길이를 저장한다.

import sys

input = sys.stdin.readline


def solution():
    s, e = 0, 0
    ans = 1e5
    n_s = 0
    while s < N:
        if n_s >= S:
            if ans > e - s:
                ans = e - s
            n_s -= a[s]
            s += 1
        elif e == N:
            break
        else:
            n_s += a[e]
            e += 1
    if ans == 1e5:
        print(0)
    else:
        print(ans)


N, S = map(int, input().split())
a = list(map(int, input().split()))
solution()
profile
smilegate megaport infra

0개의 댓글