Dictionary의 키는 왜 Hashable 타입인가요?

  • 왜 Dictionary/Set의 탐색은 O(1)인가?

  • 왜 Dictionary 탐색의 최악의 경우는 O(n)인가?

  • Hashable의 hashValue는 왜 Int 인가?

  • Hashing을 왜 하는가?

  • 좋은 해싱 알고리즘이 필요한 이유는?


위 질문에 대한 답을 명확히 하기 힘들다면 Array만을 가지고 Dictionary를 직접 구현해보는 것을 추천한다. 그 과정에서 알게 되는 것들로 위 질문들에 대한 답을 찾을 수 있다.


요구사항

  • 자료 구조는 Array만 사용한다.

  • Hashable 타입은 사용하지 않는다.

  • 구현해야 하는 메서드

    • func value(forKey key: Key) -> Value?

    • func insert(_ value: Value?, forKey key: Key)

    • var count: Int { get }



https://soojin.ro/blog/hashable

[기본기] Hashing 제대로 알기 · Soojin Ro

soojin.ro


    
      [기본기] Hashing 제대로 알기 · Soojin Ro

더 많은 콘텐츠를 보고 싶다면?

또는

이미 회원이신가요?

2023년 10월 24일 오후 5:13

댓글 0

    함께 읽은 게시물

    5월 둘째주 - OpenAI 인수부터 마소에 반기까지. 다 하는군요

    O

    ... 더 보기

    2025년 5월 9일 (금) - 새 교황님 신상털기 총정리 : 오호츠크 리포트

    55check.com

    2025년 5월 9일 (금) - 새 교황님 신상털기 총정리 : 오호츠크 리포트

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 108 • 조회 2,938


    🕊️ Java의 ExecutorService 스레드 풀 정복하기

    ... 더 보기

    Java의 ExecutorService 스레드 풀 정복하기

    덕토피아

    Java의 ExecutorService 스레드 풀 정복하기

     • 

    댓글 1 • 저장 45 • 조회 6,182


    “데이터 분석 결과 발표하겠습니다“ - 아무도 안듣는 중👀

    ... 더 보기

    책 읽고 정리하는 습관, 다시 시작해보려 합니다.

    한 달에 한 권씩 완독하며

    ... 더 보기