728x90
Two Pointers
- 리스트에 순차적으로 접근할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘
- 시작점과 끝점 2개의 점으로 접근할 데이터의 범위를 표현할 수 있다.
(응용문제) _ 특정한 합을 가지는 부분 연속 수열 찾기
- 문제 설명
- N개의 자연수로 구성된 수열이 있다.
- 합이 M인 부분 연속 수열의 개수를 구하라
- 수행 시간 제한은 O(N)
- 문제 해결 아이디어
- 시작점(start)과 끝점(end)이 첫 번째 원소의 인덱스(0)를 가리키도록 한다.
- 현재 부분 합이 M과 같다면, 카운트한다.
- 현재 부분 합이 M보다 작다면, end += 1
- 현재 부분 합이 M보다 크거나 같다면, start += 1
- 모든 경우를 확인할 때까지 2번부터 4번 과정을 반복한다.
참고
이것이 코딩 테스트다 with Python
728x90
'Tech > Algorithm' 카테고리의 다른 글
[Algorithm] Dynamic Programming (동적 계획법) (0) | 2025.02.17 |
---|---|
[Algorithm] Priority Queue (우선순위 큐) (0) | 2025.02.12 |
[Algorithm] Greedy (그리디 알고리즘) (0) | 2025.02.10 |
[Algorithm] BFS / DFS (0) | 2025.01.24 |
[Algorithm] Union-Find 알고리즘 (Disjoint Set) (0) | 2025.01.24 |