ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 해시
    자료구조, 알고리즘 2023. 3. 16. 17:58

    밑에 영상들 보시면 굳이 이 포스트 글 안 읽어도 될 것 같습니다 ~

    그래도 글 한번 읽어주세요..

     

    https://youtu.be/xls6jEZNA7Y

    https://youtu.be/HraOg7W3VAM\

     

    해시

    - 데이터를 다루는 기법 중에 하나로 검색과 저장이 아주 빠르게 진행됨

    - 해시 함수에 의해 얻어지는 값

    - 해시 값, 해시 코드, 해시 체크섬 이라고도 함

    - 해시 관련 개념들

    • 해시 함수 (hash function)
    • 해싱 (hashing)
    • 충돌 (collision)
    • 해시 테이블 (hash table)
    • key, value, bucket

     

     

    1) 해시 함수 (hash function)

    임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수

    - 다양한 길이를 가지고 있는 키(key)를 일정한 길이를 가지는 해시(hash)로 변경함

    - 저장소를 효율적으로 운영할 수 있도록 도와줌

     

     

    2) 해싱 (hashing)

    - 해시 함수에서 Key값을 hash로 변환하는 과정

    - 해싱을 통해 나온 해시 값이 데이터의 저장 위치가 된다고 생각하면 됨

     

     

    3) 충돌 (collision)

    - 서로 다른 문자열이 Hash function을 통해 나온 Hash 값이 같은 경우 (중복되는 경우)

    - 서로 다른 키(key)가 같은 해시(hash)가 되는 경우

    - 충돌 해결방안

    • Separating Chaining - Linked List, Tree (Red-Black Tree)
    • Open addressing - Linear Probing, Quadratic Probing, Double hashing
    • 리사이징(Resizing)

     

    4) 해시 테이블 (hash table)

    - 연관배열 구조를 이용하는 자료구조 중 하나임

    - 단순하게 생각하면 Key - Value 의 구조라고 할 수 있음

    - 연관배열 자료구조 (associative array) 는  key  &  value가  1:1 로 이루어진 구조

     

     

    5) key, value, bucket

    - key

    • key - value 형태에서  key 를 의미
    • 고유한 값이어야 함
    • hash function 의  input 으로 사용됨

     

    - value

    • key - value 형태에서  value 를 의미
    • bucket 에 저장되는 값
    • Key 값과 매칭되어 저장, 삭제, 검색 접근이 용이해야함

     

    - bucket

    • 데이터를 저장하는 테이블, 즉 저장 공간을 의미

     

    6) 실습

    - python 으로 실습

    - 파이썬에서는 Dictionary 라는 자료구조를 통해 해시를 제공

    - 문제

     

    - 프로그래머스 폰켓몬 문제

     

    - 나의 풀이

     

    당연히 틀림..

     

    - 다른 사람 풀이

     

    - 다른 사람들이 set 함수를 사용한다지만 우리는 hash 를 이용해서 풀어야 하기 때문에

    - 이 분의 풀이를 가져왔습니다.

     

    - 성공 !

     

    '자료구조, 알고리즘' 카테고리의 다른 글

    탐욕법  (0) 2023.04.17
    완전 탐색  (0) 2023.04.12
    정렬  (0) 2023.04.06
      (0) 2023.03.29
    스택, 큐  (0) 2023.03.22

    댓글

Designed by Tistory.