요즘에 코딩 테스트를 풀면서 최적의 알고리즘이 무엇일지 공부하고 있다.이번 문제를 풀면서 비교적 간단한 문제이지만 이 알고리즘 기법을 사용하면 조금 더 쉽게 문제를 풀 수 있어 공부하려고 가져와 봤다. 슬라이딩 윈도우란?Sliding window는 배열이나 리스트 같은 연속된 데이터에서 특정 구간의 값을 효율적으로 계산하거나 탐색할 때 사용하는 알고리즘 기법이다.여기서 특정 구간을 윈도우라고 지칭한다. 코딩 테스트 중에서 특정 구간의 합, 연속된 숫자의 조합 같은 키워드가 있을 때는 이 알고리즘을 생각하며 문제를 접근하는 것이 좋을 것 같다. 이 알고리즘 기법을 사용하면 전체를 매번 계산하지 않고, 이전 결과를 사용해서 반복적으로 계산을 갱신해나갈 수 있다.function slidingWindowSum(..
알고리즘
문제를 풀 때마다 그 문제에 적합한 알고리즘이 무엇일지 찾으면서 공부하고 있는데, 알고리즘은 참 다양한 것 같다.두 개의 예제를 통해서 이 알고리즘을 어떻게 적용하는지 알아보려고 한다. 두 포인터(Two Pointers)란?배열이나 리스트에서 두 개의 포인터(인덱스)를 사용하여 효율적으로 문제를 해결하는 알고리즘이다.주로 정렬된 배열이나 리스트에서 특정 조건을 만족하는 값을 찾거나, 병합, 탐색할 때 사용된다. 두 개의 포인터를 사용배열이나 리스트의 특정 위치를 가리키는 두 개의 포인터를 사용해 문제를 해결주로 시작점과 끝점, 또는 두 배열의 각각 첫 번째 요소에서 시작 효율성배열 전체를 한 번만 순회하거나, 필요한 만큼만 순회하기 때문에 시간 복잡도가 O(N) 또는 O(N + M)으로 매우 효율적 주..