Two pointer technique는 다음과 같은 상황에서 사용한다.
예를 들어, array를 reverse하는 경우, 한 포인터는 맨 앞에서, 한 포인터는 맨 뒤에서 시작해서 하나하나 바꿔나가면 된다. 파이썬은 reverse()가 있긴 하다.
이런 식으로 두 포인터의 속도를 다르게 하는 방법도 있다. 예를 들어, 리스트의 중간의 element를 가져오고 싶다면 한 포인터는 한 칸씩 가도록, 한 포인터는 두 칸씩 가도록 해서 속도가 더 빠른 포인터가 끝에 도달할 때, 속도가 느린 포인터는 중간 element를 가져올 것이다.
또한, 한 포인터는 한 칸 먼저 빨리 시작시키고, 두 번째 포인터는 한 칸 느리게 시작시키면서 앞 뒤를 비교하는 방법도 있을 것이다.
*이 테크닉은 주로 sorted array에서 사용한다고 한다. 그러므로 sort하고 원하는 것을 찾는 전략으로 사용할 수 있을 것이다.
**Two pointer technique, Sorted Array
'LeetCode' 카테고리의 다른 글
[String] Find the Index of the First Occurrence in a String (0) | 2024.09.23 |
---|---|
[String] Add Binary (0) | 2024.09.18 |
[2D Array] Spiral Matrix (1) | 2024.09.18 |
[HashMap] Ransom Note (1) | 2024.09.16 |
[Linked List] Middle of the Linked List (0) | 2024.09.15 |