🌵 Hash Function (해시 함수) 또는 Hash Algorithm (해시 알고리즘) 임의의 길이의 데이터(key)를 고정된 길이의 데이터(hash)로 매핑하는 함수 이 과정을 hashing이라 한다. 즉, 해시 함수 : key (Input) -> Hash (Output) 이때의 Hash는 저장 위치가 된다. 🌵 Hash Table (해시 테이블) 또는 Hash Map (해시 맵) 해시값을 주소 또는 색인 삼아 데이터(value)를 key와 함께 저장하는 자료구조이다. 파이썬의 딕셔너리(dictionary) 자료형은 해시 테이블로 구현되어 있다. 장점 해시 테이블은 key-value가 1:1로 매핑되어 있기 때문에 삽입, 삭제, 검색의 과정에서 모두 평균적으로 O(1)의 시간 복잡도를 가지고 있다..
🌵 브루트포스 알고리즘(Brute Force Search)이란? brute : 무식한 + force : 힘 brute force : 폭력 완전 탐색, 전체 탐색 알고리즘으로 불리며, 발생할 수 있는 모든 경우를 탐색한다. 쉽게 말해 4자리 비밀번호를 맞추기 위해 브루트포스 알고리즘을 사용하면, 0000부터 9999까지의 모든 숫자조합을 시도해 비밀번호를 찾는 것이다. 🌵 장점 EASY - 알고리즘을 설계, 구현하기가 매우 쉽다. 정답률 100% - 해가 하나 이상 존재한다는 가정을 세우고 구현하므로, 100%의 확률로 정답을 찾을 수 있다. 🌵 단점 시간 초과 가능성 - 모든 경우를 탐색하므로 실행시간이 오래걸린다. 비효율적 - 메모리 효율측면에서 비효율적이다. 🌵 종류 브루트포스의 종류는 크게 두 가지..