백준 2003 python [수들의 합2]

인지용·2025년 1월 28일
0

알고리즘

목록 보기
29/46
post-thumbnail

https://www.acmicpc.net/problem/2003

import sys

# with open("./data.txt", "r") as file:
#     def input():
#         return file.readline()
    
def input():
    return sys.stdin.readline()

N, M = map(int, input().split(" "))
arr = list(map(int, input().split(" ")))
cnt = 0
total = 0
endPointer = 0

for startPointer in range(N):
    while total < M and endPointer < N:
        total += arr[endPointer]
        endPointer += 1
        
    if(total == M):
        cnt += 1
    
    total -= arr[startPointer]

print(cnt)

이건 브루트포스 문제라고 하긴 했는데, 사실상 투 포인터 문제였다.

이번 문제를 풀면서 처음 알게된건데

특정 수의 합을 구하기 위해서 시작, 마지막 인덱스를 조정해가며 찾는거다.

아래 블로그를 보고 참고했다.
https://butter-shower.tistory.com/226

어렵다..

profile
한-줄

0개의 댓글