완주하지 못한 선수
https://school.programmers.co.kr/learn/courses/30/lessons/42576
javascript에서 해시를 이용하여 문제를 푸는 방법은 Map과 get, set 메소드를 이용하는 것이다.
let Object = new Map();
임의의 크리를 가지는 type의 데이터를 고정된 크기를 가지는 type의 데이터로 변환하는 함수이다.
Hash table 에서 임의의 데이터를 정수로 변환하는 함수이다.
예를 들어 hash function의 input 값이 "문자열" 이라고 한다면 output값은 19283 같은 정수로 나오게 된다. 이 때 문자열 의 hash는 19283 이 된다.
이것을 모듈러 연산을 통해 hash table에 저장한다.
let Object = new Map();
let str = "개발자";
console.log(Object.set(str, 1));
let Object = new Map();
let str = "개발자";
Object.set(str, 1);
console.log(Object.get(str);
배열이 있다고 가정하자. 배열의 길이는 8이다. 이 때 배열의 길이 8은 Capacity라고 부르며 배열의 0~7 index의 공간은 bucket 혹은 slot 이라고 부른다.
예를 들어,
("010-1111-1111", "개발자") 라는 데이터가 존재한다. 이를 해시함수에 인자로 보내어 해시 값을 구한다. 그리고 해시 값을 Capacity 값으로 모듈러 연산을 하여 bucket을 구한 후 해당 bucket에 데이터를 저장한다.