본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]2003번 수들의 합 2

by 현장 2021. 9. 14.

-코드

n, m = map(int, input().split())
num = list(map(int, input().split()))
end = 0
interval_sum = 0
cnt = 0
for start in range(n):
    while interval_sum < m and end < n:
        interval_sum += num[end]
        end += 1
    if interval_sum == m:
        cnt += 1
    interval_sum -= num[start]
print(cnt)

처음에는 for문 2개를 가지고 했으나 시간 초과가 생겨서 알고리즘을 보니 두 포인터라는 분류여서 파이썬 투포잍터 관련해서 찾아보니 수행시간에서 차이가 있는 것 같았고 투포인터에 관해서 찾아서 설명을 보고 해결을 하였습니다.

 

참고: https://freedeveloper.tistory.com/393