https://yunaaaas.tistory.com/46
백준 1764

직접 인덱스 값을 입력하여서 배열에 저장하는 방식이다. 만약에 엄청나게 큰 수가 인덱스로 들어올 때 이 방식으로 데이터를 저장하려고 하면 어떻게 해야할까?

위처럼 메모리 공간을 엄청나게 소모하여 저장하여야 할 것이다. 또 만약에 숫자가 아니라 문자열을 index로 사용하고 싶다면 어떻게 해야할까?

이렇게 문자로 쓴다면 인덱스로 접근할 수 있을까? 이렇게 할 수 없어서 해시 테이블이라는 것을 도입하여 문제를 해결할 수 있다.

설명은 어려워보이지만, 간단하게 정리하면 특별한 마법의 함수에 값을 넣으면 적당하게 좋은 index로 변환해주는 테이블 이라는 것이다. 아래 그림을 살펴보자.

hashFunction이라는 함수에 key( 여기서는 큰 수 )를 입력하면, 0부터 8까지의 수로 반환해준다. 그리고 이를 index로 사용하면 옆의 표처럼 완성이 된다. 문자를 다루는 방식도 동일하다. 특별한 마법의 함수만 잘 작성해주면 똑같이 Index로 돌려줄 것이다.
아무튼 index로 잘 정리가 되었다. 과정을 아래처럼 정리할 수 있다.
