Algorithm/algorithm_study

Two Pointers

민철킹 2021. 4. 29. 17:59

투 포인터

 

특정한 합을 가지는 부분 연속 수열 찾기

 

문제 해결 아이디어

 

* 소스 코드

n = 5 # 데이터의 개수 N
m = 5 # 찾고자 하는 부분합 M
data = [1, 2, 3, 2, 5] # 전체 수열

count = 0
interval_sum = 0
end = 0

# start를 차례대로 증가시키며 반복
for start in range(n):
    # end를 가능한 만큼 이동시키기
    while interval_sum < m and end < n:
        interval_sum += data[end]
        end += 1
    # 부분합이 m일 때 카운트 증가
    if interval_sum == m:
        count += 1
    interval_sum -= data[start]

print(count)
반응형

'Algorithm > algorithm_study' 카테고리의 다른 글

개발형 코테  (0) 2021.04.29
Interval Sum  (0) 2021.04.29
기타 그래프 이론  (0) 2021.04.19
최단 경로 알고리즘(Shortest Path)  (0) 2021.03.30
다이나믹 프로그래밍(Dynamic Programming)  (0) 2021.03.18