2024/08/12 2

[알고리즘] 문제 해결 패턴 (4) 분할 정복 패턴

분할 정복 패턴주로 배열이나 문자열 같은 큰 규모의 데이터셋을 처리한다.(연결리스트나 트리가 될 수 있다.) 값을 찾기 위해 배열의 왼쪽에서 시작하여 오른쪽 끝까지 이동하는 것보다는 배열을 작은 조각으로 세분화하여 각 조각들을 어디로 이동시킬지 결정하는 작은 조각으로 세분화하여 각 조각들을 어디로 이동시킬지 결정하는 작업을 하겠다.즉! 큰 데이터 덩어리를 작은 조각으로 나누는것 예시탐색알고리즘의 전형적인 예이다. 이것은 정렬된 숫자를 지닌 배열을 취한다. 배열은 정렬된 상태여야한다. 입력된 search라는 함수는 값을 취하고 해당 값이 있는 위치를 반환시킨다. search([1,2,3,4,5,6],4) // 3 function search(arr, val) { for (let i = 0; i  o(n)..

[알고리즘] 문제 해결 패턴 (3) 기준점 간 이동 배열 패턴

기준점 간 이동 배열 패턴배열이나 문자열과 같은 일련의 데이터를 입력하거나 특정 방식으로 연속적인 해당 데이터의 하위 집합을 찾는 경우에 유용하다.  sliding window 접근법창문을 하나 만들어야 한다. 창문은 단일변수, 하위배열, 또는 필요한 경우 다른 문자열도 될 수 있다. 조건에 따라 창문을 이동시키며, 시작 위치에서 시작하면 보통 왼쪽에서 오른쪽으로 이동한다. 오른쪽에서 왼쪽으로 이동도 가능하고 가운데 위치에서 시작할 수 있다. 그러나 보통 창문을 왼쪽, 즉 요소의 시작 위치 또는 배열이나 문자열의 시작 위치에서 끝나는 위치로 이동한다.  규모가 큰 데이터셋에서 데이터의 하위 집합을 추척하는 문제에 유용하다.예시 문제정수의 배열과 n이라는 수를 받아들이는 maxSubarraySum이라는 함..

728x90