알고리즘: 투 포인터

Ju_Nik_e·2023년 5월 1일
0

투 포인터 알고리즘

  • 리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘(시작점과 끝 점 2개의 점으로 접근할 데이터의 범위를 표현)
  • O(n)의 시간복잡도를 가짐

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

  1. 시작점과 끝점이 첫 번째 원소의 인덱스(0)을 가리키도록 함
  2. 현재 부분의 합이 m과 같다면, 카운트
  3. 현재 부분 합이 M보다 작으면, END를 1증가
  4. 현재 부분 합이 M보다 크거나 같다면, START를 1증가
  5. 모든 경우를 확인할 때까지 반복

    투 포인터 이동 원칙

    • sum > n: sum - start_index; start_index++;
    • sum < n: end_index++; sum = sum + end_index;
    • sum == n: end_index++; sum = sum + end_index; count++

0개의 댓글