[자료구조] 해시(Hash) & 파이썬 해시 기반 자료구조(dict/set) + heapq 정리
·
코딩테스트
1. 해시(Hash)란?해시는 어떤 값을 짧은 정수(해시값) 로 바꿔서, 그 값을 이용해 데이터를 빠르게 찾도록 만드는 방법이다.이 아이디어를 기반으로 만들어진 대표 구조가 해시 테이블(Hash Table) 이고, 파이썬의 dict, set이 내부적으로 이 방식으로 동작한다.해시 테이블 장점: 평균적으로 탐색/삽입/삭제가 빠르다(평균 O(1)로 기대) 단점: 서로 다른 값이 같은 위치로 가는 충돌(collision) 이 생길 수 있고, 충돌이 심하면 성능이 나빠질 수 있다. 2. 파이썬에서 해시가 쓰이는 곳: dict / set(1) dict (딕셔너리)키(key) → 값(value) 매핑 자료구조키는 “거의 모든 값”이 가능하지만, 해시 가능(hashable) 해야 한다. 즉, 리스트/딕트처럼 가변 객..