접근 패턴에서 가장 빈번한 연산이 가장 저렴한 구조를 고르세요. 수행할 연산을 나열하고, 그 빈도를 추정한 뒤, 구조의 강점에 맞춰보는 것부터 시작합니다.
의사결정 체크리스트
text
1. 데이터에 어떻게 접근하는가? index로 -> array
key로 -> hash map
순서로 -> tree / heap
2. 순서가 필요한가? 정렬 -> balanced BST / 정렬된 array
FIFO -> queue
LIFO -> stack
3. 중간에 자주 삽입하는가? -> linked list
4. 빠른 "본 적 있나?"가 필요? -> set / hash map
5. "다음으로 최선/최소/최대"? -> heap (priority queue)
