Algorithm 95

[Algorithm] 완전 탐색

완전 탐색? 컴퓨터의 빠른 계산 능력을 이용하여 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 말합니다. 효율성 관점에서는 최악의 방법입니다. '무식하게 답을 찾는다'라고 하여 Brute-Force(브루트 포스)라고도 불립니다. 완전 탐색 기법 완전 탐색 기법을 이용하기 위해서는 여러 알고리즘 기법이 사용된다. 완전 탐색 기법만을 가지고는 알고리즘 문제를 풀기에는 적합하지 않습니다. 주로 사용되는 알고리즘 기법 단순 Brute-Force 알고리즘 기법을 사용하지 않고 단순히 반복문을 통해 답을 구하는 방법입니다. 비트 마스크(Bitmask) 2진수를 이용하는 컴퓨터의 연산을 이용하는 방식입니다. 재귀 함수 재귀 함수를 통해서 문제를 만족하는 경우들을 만들어가는 방식입니다. 무한루프에 빠질 수 있..

Algorithm 2022.07.10

[Algorithm] 힙(Heap)

📌 힙(Heap)이란? 최댓값과 최솟값을 빠르게 찾기 위해 고안된 자료구조 힙은 최대힙, 최소힙으로 나눠집니다. 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 시간복잡도 = O(log n) ✅ 최대힙 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 key(부모) >= key(자식) ✅ 최소힙 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완진 이진트리 key(부모)

Algorithm/Study 2022.06.26

[Algorithm] 해시 테이블(Hash Table)

📌 해시 테이블(Hash Table)? 어떤 특정 값을 받으면 그 값을 해시 함수에 통과 시켜 나온 인덱스에 저장하는 자료구조 해시 함수를 사용하여 특정 값을 신속하게 찾는 자료구조 자바스크립트 객체는 해시 테이블과 같은 방식으로 키와 해당 키의 연관된 값을 정의하는 방식으로 동작한다. ✅ 해시 함수 (Hash Function) = 해시(Hash) 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 해시 함수의 특성 압축성: 다양한 가변 길이의 입력에 대해 고정된 크기의 결과값을 반환하는 성질을 가진다. 효율성: 어떤 입력 값에 대해서도 많은 자원과 시간이 소요되지 않고 처리되는 성질을 가진다. 저항성: 결과값을 바탕으로 입력 값을 찾는 것이 불가능한 성질을 가진다. ✅ 해시 충돌(Hash Co..

Algorithm/Study 2022.06.09

[자료구조] 스택, 큐, 덱

스택(Stack) 데이터를 차곡차곡 쌓아 먼저 들어간 데이터가 나중에 나가는 후입선출(Last In First Out, LIFO) 방식을 사용하는 자료구조이다. JavaScript Code 및 사용 메서드 push(): 삽입 pop(): 삭제 let stack = []; stack.push('data 1'); console.log(stack);// ['data 1'] stack.push('data 2'); console.log(stack);// ['data 1', 'data 2'] stack.push('data 3'); console.log(stack);// ['data 1', 'data 2', 'data 3'] stack.pop() console.log(stack);// ['data 1', 'data ..

Algorithm 2022.05.10

[캐시 알고리즘] LRU (Least Recently Used Algorithm)

캐시(Cache)란 무엇인가? 캐시는 데이터나 값을 미리 복사해 놓는 임시 저장소를 가리킨다. 캐시(Cache)의 특징 사용했던 데이터가 임시 저장소에 담겨있기 때문에 다시 사용할 때 빠르게 접근하여 데이터를 불러올 수 있다. 계산된 값이 저장되어 있어 다시 계산하는 시간을 줄일 수 있다. LRU(Least Recently Used Algorithm)란 무엇인가? 가장 오랬동안 참조되지 않은 페이지를 교체하는 알고리즘 기법이다. 캐시에 공간이 부족할 때 가장 오랫동안 참조되지 않은 항목을 제거하고 새로운 항목을 삽입하는 형식으로 동작된다. LRU 동작 과정 빈 캐시안에 순차적으로 캐시를 채워준다. 4번째 값인 8을 사용할때 참조할 수 있는 캐시가 없으므로 가장 오랫동안 참조되지 않은 값인 1을 삭제 후 ..

Algorithm/Study 2022.02.10