-> 키를 통해서 데이터에 바로 접근 가능
+빠르게 원하는 값을 검색할 수 있다는 장점
파이썬에서는 딕셔너리라는 자료형을 제공하고 이는 해시와 거의 동일하기 때문에 해시 함수를 직접 구현할 필요는 거의 없음
키의 자료형이 문자형일 때
각 문자열의 문자들을 적절한 숫자로 변경한 다음 해시 함수를 적용
(a+b)%c = (a%c+b%c)%c
-> 덧셈을 전부한 다음 모듈러 연산을 하면 오버플로우가 발생할 수 있으므로 중간 중간 모듈러 연산을 해 더한 값을 모듈러 연산하면 오버플로우 방지 가능
서로 다른 두 키가 해시 함수를 적용해 같은 해시값이 나온 경우
체이닝으로 처리하기
링크드리스트로 같은 해시값을 가지는 데이터를 연결
-공간 활용성이 떨어지고 검색 성능도 떨어짐
개방 주소법으로 처리하기
빈 버킷을 찾아 충돌값을 삽입
코딩테스트 문제에서 해시 문제의 핵심은 키와 값을 매핑하는 과정이다 !
특정 값이나 정보를 기준으로 빈번한 검색을 해야하거나, 특정 정보와 매핑하는 값의 관계를 확인해야 하는 작업이 문제에 있으면 해시를 고려해야 !