Hash 알고리즘

이강용·2023년 12월 21일
0

알고리즘 개념

목록 보기
8/14

해시(Hash) 알고리즘이란?

  • 데이터를 효율적으로 관리하기 위한 알고리즘으로, 어떠한 데이터든 고정된 길이의 고유한 값(해시 값 또는 해시 코드)으로 변환하는 과정을 말함

  • key, value 를 가지는 자료 구조

무언가를 찾기 위한 검색어 = Key
그 검색어로 나온 결과 = Value
모든 데이터 타입으로 접근이 가능하다

목적

  1. 데이터의 고유성 확인 : 해시 알고리즘은 데이터의 무결성을 검증하는데 사용됨. 같은 데이터는 항상 동일한 해시 값을 생성하므로, 데이터가 변경되었는지 여부를 쉽게 확인할 수 있음

  2. 데이터 저장 및 검색 최적화 : 해시 테이블 구조에서는 해시 함수를 사용하여 데이터를 저장하고 빠르게 검색함. 해시 값은 데이터의 저장 위치를 결정하는 데 사용되어 데이터 접근 시간을 단축시킴

예시

👉🏻 완주하지 못한 선수

어떤 문제에서 해시를 써야할까?

  • String을 기반으로 정보를 기록하고 관리해야 될 때
1. 완주하지 못한 선수

- 선수 이름 -> 완주 여부
  String -> Hash
  String Key : boolean Value
  
2. 신고 결과 받기

- 게시판 사용자
  신고 당한 사람을 기준으로
  신고자들의 목록을 관리
  신고 당한 사람의 이름이 String
  String Key
  ArrayList<String> Value
  
3. 위장

- 옷의 종류가 정수가 아니라
  얼굴 / 상의 / 하의 / 겉옷
  String Key : Integer Value

정리

  1. Hash는 전화번호부와 같다
  2. 대부분 그 Key가 String이다
  3. put / get / getOrDefault

출처

위 내용은 개발자로 취직하기 강의를 참고하여 공부 및 이해를 목적으로 작성하였습니다. 🙏🏻

profile
HW + SW = 1

0개의 댓글