인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

이지민님의 프로필 이미지

작성한 질문수

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

해시테이블 - 개념

해시 테이블에서 질문이 잇습니다.

작성

·

35

1

안녕하세요. 감자님.

해시 테이블을 복습하던 도중에 질문이 생겨서 글을 남깁니다.

 

(해시 테이블의 인덱스, 데이터)와 (데이터의 key,value)에 대해 질문 드리고자 합니다.

 

해시 테이블의 인덱스-데이터와 데이터의 key-value는 별도의 개념인가요?

해시 함수가 없는 해시 테이블?(이런 경우는 거의 없겠지만)은 데이터의 key-value 자체가 해시 테이블의 인덱스-데이터가 되지만

보통은 해시 함수를 사용하기 때문에 인덱스-데이터, key-value는 별도이고 key의 용도는 해시 함수를 거쳐 특정 인덱스에 접근하기 위함 + 인덱스 내에 존재하는 알맞은 데이터에 접근하기 위한 용도인가요?

 

제가 이해한 개념을 그림으로 표현해봤습니다.

스크린샷 2025-03-15 174543.png.webp

 

좋은 강의 감사합니다!

 

답변 2

0

감자님의 프로필 이미지
감자
지식공유자

안녕하세요 이지민님!

해시 테이블 개념을 질문주셨는데 이해하신게 맞습니다.

인덱스 데이터와 key-value는 다른 개념입니다.

인덱스 데이터는 해시 테이블에 저장된 배열의 위치를 나타냅니다.

인덱스는 key와 해시함수를 이용해 구해지고, 해당 인덱스에 key-value가 저장됩니다.

일반적이지는 않지만 만약 해시함수가 없다면 key가 곧 인덱스일 수 있습니다. key가 9라면 9번 인덱스에 key-value를 저장하는 것이죠.

이해하시고 직접 정리한 그림이 정확합니다.

잘 이해하셨습니다 😀

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 이지민님. 해시 테이블의 인덱스-데이터와 데이터의 key-value의 개념에 대해 질문 주셨군요.

해시 테이블에서는 이 두 요소가 서로 다른 개념입니다. 해시 함수를 사용해서 각 데이터의 key를 특정 인덱스로 변환합니다.

  • Key-Value: key는 데이터의 고유 식별자 역할을 합니다. value는 그 key에 연관된 실제 데이터입니다.
  • 인덱스-데이터: 해시 함수는 key를 받아서 특정 인덱스를 생성하고, 이 인덱스는 해시 테이블 내의 실제 위치를 가리킵니다. 여기에는 key와 value가 저장됩니다.

따라서 key는 두 가지 역할을 합니다. 첫째, 해시 함수를 통해 테이블 내의 인덱스를 계산하고, 둘째, 인덱스가 가리키는 영역 내에서 올바른 데이터를 찾기 위해 사용됩니다.

이 구조를 통해 해시 테이블은 매우 빠른 조회와 삽입/삭제 기능을 제공할 수 있습니다. 질문에 작성해 주신 것처럼 보통 해시 함수는 필수적이고 중요한 요소입니다.

덧붙여 질문의 이해를 돕기 위해 유사한 설명이 담긴 질문 답변 링크를 추천해 드립니다: HashTable set 메서드.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.