투 포인터

김동하·2022년 12월 6일
0

알고리즘

목록 보기
46/90

투 포인터란

  • 리스트에 순차적으로 접근해야할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘
  • 정렬되어 있는 두 리스트의 합집합에도 사용됨
  • 예제 : 어떤 숫자들의 리스트가 주어질 때, 해당 리스트의 연속 수열의 합이 특정 값을 가지는 것을 확인하는 문제
const n = 5
const arr = [1, 2, 3, 2, 5]
  1. 시작점과 끝점이 첫 번째 원소의 인덱스를 가리키도록함
  2. 현재 부분 합이 n과 같다면 카운트한다
  3. 현재 부분 합이 n보다 작으면 end를 1증가시킴
  4. 현재 부분 합이 n보다 크거나 같으면 start 1증가시킴
  5. 모든 경우를 확인할 때까지 2-4번 과정 반복
let start = 1
let end = 1
let subs = 1
let count = 0
  • 이 단계에서 end = 2
let start = 1
let end = 2
let subs = 3
let count = 0
  • 이 단계에서 end = 3
let start = 2
let end = 3
let subs = 6
let count = 0
  • 이 단계에서 start = 2
let start = 2
let end = 3
let subs = 5
let count = 1
  • 이 과정을 반복한다.

출처 : https://butter-shower.tistory.com/226

profile
프론트엔드 개발

0개의 댓글