Development/Algorithm

[백준] 2003번: 수들의 합 2 (python)

jstar0525 2021. 5. 6. 20:15
반응형

www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

import sys

N, M = map(int,sys.stdin.readline().split())
A = list(map(int,sys.stdin.readline().split()))

num = 0
idx = 0
q = []

while(idx <= N):

    if not q or sum(q) < M:
        if idx >= N:
            break
        q.append(A[idx])
        idx += 1
    elif sum(q) >= M:
        if sum(q) == M:
            num += 1
        q.pop(0)

print(num)
반응형