알고리즘 이야기/알고리즘 개념

투 포인터 이해하기, 리트코드 예제

thisisamrd 2024. 3. 26.

 

투 포인터 알고리즘 개념

투 포인터 알고리즘은 주로 정렬된 배열이나 리스트를 다룰 때 사용되며, 문제를 해결하기 위해 두 개의 포인터를 사용하는 방법입니다.

 

이 알고리즘에서는 보통 한 포인터는 시작점에, 다른 하나는 끝점에 위치하고, 배열을 순회하면서 두 포인터가 가리키는 값을 비교하여 문제의 조건을 만족하는지 확인합니다.

 

 

조건에 따라 한 포인터만 이동시키거나 두 포인터를 동시에 이동시키기도 합니다. 이런 방식을 통해, 예를 들어 주어진 합을 만족하는 두 수를 찾거나, 최대 길이의 연속 부분 배열을 찾는 등의 문제를 효율적으로 해결할 수 있습니다.

 

 

 

 

 

 

 

투 포인터 알고리즘의 주요 장점은 불필요한 탐색을 줄여 시간 복잡도를 개선할 수 있다는 것이며, 대부분의 경우 O(n) 시간 안에 문제를 해결할 수 있습니다.

 

 

또한, 이 알고리즘은 추가적인 공간을 거의 사용하지 않아 공간 복잡도가 O(1)입니다. 하지만 배열이 정렬되어 있지 않다면, 투 포인터 알고리즘을 적용하기 전에 정렬 과정이 필요할 수 있습니다. 이러한 특징들로 인해, 투 포인터 알고리즘은 코딩 테스트나 알고리즘 문제를 해결하는 데 매우 유용하게 활용됩니다.

 

 

 

 

 

 

 

투 포인터 알고리즘 리트코드 바로가기

투 포인터 알고리즘 문제를 연습할 수 있는 리트코드 문제를 가져왔습니다.

충돌(Collision)

 

전진(Forward)

 

 

 

 

 

댓글