🍋 ⚾️ 💻 🎬 🎮

Tech/Algorithm

[Algorithm] Two Pointers (투 포인터)

aeightchill 2025. 1. 24. 17:13
728x90

Two Pointers

  • 리스트에 순차적으로 접근할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘
  • 시작점과 끝점 2개의 점으로 접근할 데이터의 범위를 표현할 수 있다.

 

(응용문제) _ 특정한 합을 가지는 부분 연속 수열 찾기
  • 문제 설명
    • N개의 자연수로 구성된 수열이 있다.
    • 합이 M인 부분 연속 수열의 개수를 구하라
    • 수행 시간 제한은 O(N)

  • 문제 해결 아이디어
    1. 시작점(start)과 끝점(end)이 첫 번째 원소의 인덱스(0)를 가리키도록 한다.
    2. 현재 부분 합이 M과 같다면, 카운트한다.
    3. 현재 부분 합이 M보다 작다면, end += 1
    4. 현재 부분 합이 M보다 크거나 같다면, start += 1
    5. 모든 경우를 확인할 때까지 2번부터 4번 과정을 반복한다.

 

 


참고

이것이 코딩 테스트다 with Python

728x90