[자료구조] 해시법(hashing) 자바스크립트 구현
·
코딩테스트/자료구조_알고리즘
해시법해시법은 데이터를 저장할 위치(인덱스)를 간단한 연산으로 구하여 검색과 추가, 삭제를 효율적으로 수행할 수 있는 방법이다. 아래 요소가 13개인 배열에서 앞쪽 10개 요소에 오름차순으로 정렬된 데이터가 저장되어 있다.a[5, 6, 14, 20, 29, 34, 37, 51, 69, 75, -, -, -]이 배열에 35를 추가하는 과정은 다음과 같다.1. 삽입할 위치가 a[5]와 a[6] 사이임을 이진 검색법으로 찾는다.2. a[6] 이후의 모든 요소를 하나씩 뒤로 이동한다.3. a[6]에 35를 대입한다.b[5, 6, 14, 20, 29, 34, 35, 37, 51, 69, 75, -, -]요소 이동에 필요한 복잡도는 O(n)이므로 비용은 작지 않다. 데이터를 삭제하는 경우에도 똑같은 비용이 발생한다..
[자료구조] 스택(Stack)/큐(Queue) 자바스크립트 구현(배열, 연결 리스트)
·
코딩테스트/자료구조_알고리즘
스택스택은 데이터를 일시적으로 쌓아 놓는 자료구조로, 가장 나중에 넣은 데이터를 가장 먼저 꺼내는 후입선출(LIFO, Last In First Out) 구조이다. 푸시와 팝이 이루어지는 쪽은 꼭대기(top)라 하고, 스택의 가장 아랫부분을 바닥(bottom)이라 한다.주요 연산push(v): 요소를 스택의 맨 위에 추가pop(): 스택의 맨 위 요소를 제거하고 반환peek(): 스택의 맨 위 요소를 확인isEmpty(): 스택이 비어있는지 확인size(): 스택에 있는 요소의 개수를 반환구현하기배열 활용class Stack { // 빈 배열을 생성하여 스택 초기화 constructor() { this.items = []; } // 요소 추가 push(element) { this.ite..