해쉬 자료구조는 키에 대응되는 값을 저장하는 자료구조이다. Key 값이 특정 인물의 카드 번호라고 가정하고, value 값은 사람 이름이라고 하자. 그래서 특정 카드 번호가 누구의 것인지를 찾고자 한다. 가장 간단하게 쉬운방법으로 구현한다고 한다면, 배열에 모든 데이터를 넣고 탐색을 하는 방법이 있을 것이다. 다만 특정 데이터를 지우는 건 O(N)이고, 특정 카드번호가 누구의 것인지 찾을 때는 배열의 원소를 하나씩 살펴봐야하니 O(N)이 된다. 그런데 해쉬(Hash) 자료구조에서는 insert, erase, find, update 등의 모든 연산이 전부 O(1)이다. 배열에서 인덱스를 가지고 특정 원소를 O(1)에 찾지만, 삽입과 삭제의 경우 O(N)의 시간복잡도를 가진다. 또한 연결 리스트에서는..