본문 바로가기

코딩테스트 문제풀이

투 포인터 알고리즘

728x90

1.  시작점(start)과 끝점(end)이 첫 번째 원소의 인덱스(0)을 가르키도록 한다.

2. 현재 부분 합이 M과 같다면, 카운트를 한다.

3. 현재 부분 합이 M보다 작다면 end를 1 증가시킨다

4. 현재 부분 합이 M보다 크거나 같다면 start를 1증가시킨다.

5. 모든경우를 확인할때까지 2부터 4번까지의 과정을 반복한다.

 

 

  • [초기 단계] : 시작점과 끝점이 첫번째 원소의 인덱스를 가리키도록 합니다.
    •  
    • 현재의 부분 합은 1.
    • 현재 카운트 : 0
  • [Step 1] : 이전 단계에서의 부분합이 1 -> end를 증가시킵니다.
    • 현재의 부분 합 : 3
    • 현재 카운트 : 0
  • [Step 2] : 부분합이 3 -> end를 증가시킵니다.
    • 현재의 부분 합 : 6
    • 현재 카운트 : 0
  • [Step 3] : 부분합 6 -> start를 1 증가시킵니다.
    • 현재의 부분 합 : 5
    • 현재 카운트 : 1 (부분합이 5이기 때문에)
  • 이걸 계속 반복하다가 마지막
  • [마지막]
    • 현재의 부분합 : 5
728x90