programming language/Algorithm
Two Pointer 개념 정리
jellylucy
2024. 2. 7. 12:23
간단하게 두개의 인덱스를 이용해서 최적의 해를 구하는 것이다.
보통 start, end = 0, 0 으로 둔 뒤 end의 값을 늘려간다.
그리고 필요시 start += 1을 해주면서 두 인덱스 값을 조절한다.
특정한 합을 찾는 연속 수열
n, m = map(int, input().split())
graph = list(map(int, input().split()))
for start in range(n):
while result < m and end < n:
result += graph[end]
end += 1
if result == m:
count += 1
result -= graph[start]
print(count)
해당 문제에서는 모든 부분수열의 경우의 수를 다 확인하면서 찾는 공간을 사용해야한다..
그래서 end 만 이동시키는 것 뿐만 아니라,
start 또한 앞으로 한 번씩 움직인다.