Algorithm (2) 썸네일형 리스트형 [Algorithm] 알고리즘 기본 패턴 4 - Devide & Conquer 4. Devide & Conquer 여기서는 간략하게 개념만 설명하고 넘어가겠습니다.분할 정복 알고리즘의 예시로는 이진 탐색 트리 그리고 정렬 알고리즘으로 넘어가면 퀵 정렬과 병합 정렬이 대표적인 예가 될 수 있습니다.이 알고리즘은 주로 배열이나 문자열 같은 큰 규모의 데이터셋을 처리하며,링크드 리스트나 트리가 대상이 될 수도 있습니다. 이진 탐색 트리 를 보면 선형탐색으로 O(n) 의 시간을 들여 찾는 것 보다절반으로 나누어 찾아가면 O(log n) 로 훨씬 더 효율적으로 찾는 것을 알 수 있습니다. 이렇게 몇몇 케이스에서 분할 정복 패턴을 사용하면 더 효율적인 결과를 얻을 수 있습니다. function search(array, val) { let min = 0; let max = ar.. [Algorithm] 알고리즘 기본 패턴 3 - Sliding Window 3. Sliding Window 배열이나 문자열과 같은 일련의 데이터를 입력하거나 특정 방식으로 연속적인 해당 데이터의 하위 집합을 찾는 경우에 유용합니다. 창문을 하나 만들어야 합니다. 여기서 말하는 창문이란 개념은 주어진 데이터의 범위를 나타냅니다.그 창문을 만들고 데이터 안에서 창문을 여는 것처럼 이동을 시키며주어진 조건을 클리어하는 알고리즘 패턴입니다. 이 기법은 윈도우의 크기를 나타내는 변수와 하위 배열, 또는 다른 문자열이 주어지며,윈도우의 크기는 고정되거나 가변적인 크기가 될 수 있습니다. 조건에 따라 창문을 이동시키며, 시작 위치에서 시작하면 보통 왼쪽에서 오른쪽으로 이동합니다. 오른쪽에서 왼쪽으로 이동도 가능하고 가운데 위치에서 시작할 수도 있습니다. 그러나 보통 창문을 왼쪽, 즉, 요소.. 이전 1 다음