시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
0.5 초 | 128 MB | 44623 | 21416 | 14473 | 48.300% |
# 입력
4 2
1 1 1 1
# 출력
3
1차 시간초과
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
arr=list(map(int,input().split()))
count=0
for i in range(len(arr)):
number=0
if arr[i]>M:
continue
elif arr[i]==M:
count+=1
continue
else:
while number<M and i<N:
number+=arr[i]
i+=1
if number==M:
count+=1
print(count)
2차 성공
import sys
input=sys.stdin.readline
def main():
N,M=map(int,input().split())
arr=list(map(int,input().split()))
answer=two_pointer(arr,N,M)
print(answer)
def two_pointer(arr,N,M):
count=0
start=0
end=1
while start<=end and end<N+1:
if sum(arr[start:end])==M:
count+=1
end+=1
elif sum(arr[start:end])<M:
end+=1
else:
start+=1
return (count)
if __name__=="__main__":
main()