정수 여러 개와 목표합 target이 한 줄씩 입력됩니다. 연속 부분 배열의 합이 target 인 경우의 수를 출력하세요.
📥 테스트 입력값
1 1 1
2
🔎 실행 결과
2
💡 힌트 코치
prefix sum + 딕셔너리로 O(n) 에 해결하세요.
✅ 정답 공개
from collections import defaultdict
nums=list(map(int,input().split()))
target=int(input())
count=defaultdict(int); count[0]=1
current=0; result=0
for n in nums:
current+=n
result+=count[current-target]
count[current]+=1
print(result)