Algorithm/이론

Two Pointer Algorithm

챛채 2023. 7. 24. 15:59

투 포인터 알고리즘

  • 1차원 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가며 원하는 값 찾을 때까지 탐색하는 알고리즘
  • 리스트에 순차적으로 접근해야 할 때 두 포인트의 위치를 기록하며 처리
  • 처음은 start = end = 0
  • 두 포인터는 항상 start <= end를 만족해야만 한다. 

시간 복잡도

  • 루프마다 두 포인터 중 하나는 1씩 증가하므로 start와 end는 최대 N까지 증가 가능
  • 증가하는 과정은 최대 N번 반복
  • O(N^2)가 걸리는 문제를 O(N)에 해결 가능하다.