본문 바로가기

전체 글

(291)
[Design Pattern] 3.Observer Pattern 행동/이벤트 카테고리에 들어감 -> 한 주제 객체의 상태가 바뀌면 다른 구독 중인 객체들에게 상태와 변경을 알림 1:N의 관계 느슨한 결합
[Design Pattern] 2. factory pattern
[Design Pattern] 1. singleton pattern s1 === s2
[Binary Search] 이진탐색 이진 탐색은 divide and conquer (분할정복) 패턴을 지향하는 탐색 알고리즘이다. 굉장히 빠르고 효율적이지만, 전제 조건이 있다. input 되어지는 배열/데이터가 정렬이 되어있어야한다. 선형탐색과 비교 바이너리 탐색 방식 바이너리 탐색(이진탐색)은 큰 사이즈의 데이터 셋에 적용했을 때 매우 효율적이다.
[Linear Search] 선형 탐색 선형 탐색 - 선형 탐색은 배열/리스트 에서 주어진 원소를 찾을 때 사용한다. - 일렬로 된 자료를 차례대로 탐색하는 알고리즘이다. - 찾고자 하는 원소를 찾을 때 까지 또는 모든 원소의 순회가 끝날 때 까지 진행된다. 동작원리는 배열 전체 left -> right 순차적 배열이다 각 단계 마다 찾는 원소를 확인하고 찾으면 순회를 멈춘다. 못찾았을 경우 다음 원소로 넘어가고, 같은 작업을 반복한다. 시간복잡도는 O(n) javascript indexOf 배열을 생각하면 된다
[Recursion] 재귀함수
투 포인터 기법 // 다음의 배열에서, 합이 x인 연속 부분배열의 개수를 구하라 // arr = [ 1, 3, 6, 5, 2, 7, 9 ], x = 9 function countSubArrSumOfX(arr, x) { let count = 0; let sum = 0; let left = 0; let right = 0; while(right x){ sum -= arr[left] left++ } } return count; } console.log(countSubArrSumOfX([1, 3, 6, 5, 2, 7, 9], 9)) // 다음의 배열에서(정렬된), 두개의 원소의 합이 x와 같은지를 확인하고, 그렇다면 각각원소의 인덱스를 반환하라. // arr = [ 2, 4, 5, 7, 11, 15 ], x = 15 functi..
[Linked List] 연결리스트 Linked List란 - 연속된 노드의 연결체 Node란 - 연결 리스트에서 사용되는 하나의 데이터 덩어리로 데이터&링크 2가지의 필드를 담고 있는 구조 연결리스트의 종류 Singly Linked List(단일연결리스트) Doubly Linked List(이중연결리스트) Circular Linked List (원형연결리스트) 연결리스트 구현방법

728x90