투 포인터 알고리즘 개념
투 포인터 알고리즘은 주로 정렬된 배열이나 리스트를 다룰 때 사용되며, 문제를 해결하기 위해 두 개의 포인터를 사용하는 방법입니다.
이 알고리즘에서는 보통 한 포인터는 시작점에, 다른 하나는 끝점에 위치하고, 배열을 순회하면서 두 포인터가 가리키는 값을 비교하여 문제의 조건을 만족하는지 확인합니다.
조건에 따라 한 포인터만 이동시키거나 두 포인터를 동시에 이동시키기도 합니다. 이런 방식을 통해, 예를 들어 주어진 합을 만족하는 두 수를 찾거나, 최대 길이의 연속 부분 배열을 찾는 등의 문제를 효율적으로 해결할 수 있습니다.
투 포인터 알고리즘의 주요 장점은 불필요한 탐색을 줄여 시간 복잡도를 개선할 수 있다는 것이며, 대부분의 경우 O(n) 시간 안에 문제를 해결할 수 있습니다.
또한, 이 알고리즘은 추가적인 공간을 거의 사용하지 않아 공간 복잡도가 O(1)입니다. 하지만 배열이 정렬되어 있지 않다면, 투 포인터 알고리즘을 적용하기 전에 정렬 과정이 필요할 수 있습니다. 이러한 특징들로 인해, 투 포인터 알고리즘은 코딩 테스트나 알고리즘 문제를 해결하는 데 매우 유용하게 활용됩니다.
투 포인터 알고리즘 리트코드 바로가기
투 포인터 알고리즘 문제를 연습할 수 있는 리트코드 문제를 가져왔습니다.
충돌(Collision)
전진(Forward)
LeetCode 209. Minimum Size Subarray Sum LeetCode 3. Longest Substring Without Repeating Characters LeetCode 76. Minimum Window Substring LeetCode 19. Remove Nth Node From End of List
'알고리즘 이야기 > 알고리즘 개념' 카테고리의 다른 글
자바스크립트 알고리즘 해시 개념, 리트코드 예제 (0) | 2024.03.25 |
---|---|
자바스크립트 알고리즘 재귀(recursion) 개념과 예제 (0) | 2024.03.25 |
투 포인터 알고리즘 개념, 쉬운 예시 문제, 리트코드 문제 (1) | 2024.03.11 |
JS 알고리즘 - substring(), substr() & Math.floor(), toFixed() 정리 (0) | 2023.09.29 |
댓글