[알고리즘] 해시

2025. 4. 30. 15:48·알고리즘
  • 해시는 해시 함수를 사용해서 변환한 값을 인덱스로 삼아 키와 값을 저장해서 빠른 데이터 탐색을 제공하는 자료구조이다.
  • 보통은 인덱스를 활용하지만 해시는 키와 데이터를 일대일 대응하여 저장하므로 키를 활용해 데이터에 바로 접근한다.
  • 해시의 특징
    • 단방향으로 동작: 키를 통해 값을 찾을 수 있지만 값을 통해 키를 찾을 수는 없다.
    • 찾고자 하는 값을 O(1)로 찾음: 키 자체가 해시 함수에 의해 값이 있는 인덱스가 되므로 값을 찾기 위한 탐색 과정이 불필요.
    • 값을 인덱스로 활용하려면 적절한 변환 과정을 거쳐야 한다.
  • 해시를 사용하는 경우와 사용하지 않는 경우는 이렇게 차이가 난다.

 

  • 해시를 활용하면 순차 탐색할 필요 없이 해시 함수를 활용해 특정 값이 있는 위치를 바로 찾을 수 있어 효율이 좋다.
  • 해시 테이블: 키와 대응한 값이 저장되어 있는 공간
  • 버킷: 해시 테이블의 각 데이터
  • 해시의 특성은 데이터를 저장하고 검색하거나, 보안이 필요한 때에 활용된다.
  • 코딩 테스트에서는 특정 데이터를 탐색하는 횟수가 많을 경우 해시를 고려하면 좋다.
  • 코딩 테스트에서는 해시 함수를 직접 구현하는 문제가 나오지는 않고, 해시와 거의 동일하게 동작하는 파이썬 딕셔너리 자료형을 활용하여 해시를 쉽게 사용할 수 있다.
  • 충돌: 서로 다른 두 키에 대해 해싱 함수를 적용한 결과가 동일한 것을 의미. 최대한 방지할 수 있는 해시 함수를 써야한다.

'알고리즘' 카테고리의 다른 글

[알고리즘] 스택과 큐  (0) 2025.03.16
[알고리즘] 배열  (0) 2025.03.04
[코딩테스트] 파이썬의 기본 자료형  (0) 2025.02.25
[코딩테스트] 알고리즘 문제풀이 전략  (0) 2025.02.25
[알고리즘 문제] 하샤드 수  (1) 2022.11.23
'알고리즘' 카테고리의 다른 글
  • [알고리즘] 스택과 큐
  • [알고리즘] 배열
  • [코딩테스트] 파이썬의 기본 자료형
  • [코딩테스트] 알고리즘 문제풀이 전략
youjeong_choi
youjeong_choi
  • youjeong_choi
    youjeong
    youjeong_choi
  • 전체
    오늘
    어제
    • 분류 전체보기 (101)
      • HTML, CSS (7)
      • JavaScript (19)
        • 모던 자바스크립트 딥다이브 (4)
      • ReactJS (17)
      • TIL (15)
      • WIL (17)
      • 알고리즘 (17)
      • 네트워크 (5)
      • Vue (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    혼공스
    선언적 함수
    익명 함수
    항해99리액트
    항해99주특기리액트
    자바스크립트
    리액트 라이프 사이클
    리액트 라우트
    리액트
    항해99
    모던자바스크립트딥다이브
    항해99 실전프로젝트
    항해99리액트숙련주차
    피니아
    무한렌더링
    항해99주특기
    파이썬
    알고리즘
    알고리즘 문제
    항해99 주특기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
youjeong_choi
[알고리즘] 해시
상단으로

티스토리툴바