ν€μ κ°μΌλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ ν΄μ ν μ΄λΈ
ν΄μ ν
μ΄λΈ(Hash Table)
μ μ°νΈλ²νΈλ‘ μ£Όμλ₯Ό μ°Ύλ κ²μ²λΌ, ν€(Key)μ κ°(Value)μ μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ
λλ€.
νΉμ λ°μ΄ν°λ₯Ό κ²μν λ ν€λ₯Ό μ΄μ©ν΄ κ°μ λΉ λ₯΄κ² μ°Ύμ μ μμ΄ λμ©λμ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
λ°μ΄ν°λ₯Ό μ μ₯ν λλ ν΄μ ν¨μ(Hash Function)
λ₯Ό μ¬μ©ν΄ κ³ μ μ κ·μΉμ λ°λΌ νΉμ μ«μ(ν΄μ κ°)λ₯Ό μμ±νκ³ , μ΄ κ°μ μ΄μ©ν΄ λ°μ΄ν°λ₯Ό μ μ₯ν μμΉλ₯Ό κ²°μ ν©λλ€.
ν΄μ ν μ΄λΈμ μ΄λ»κ² λμν κΉμ?
ν΄μ ν μ΄λΈμ ν€-κ°(key-value) μμ μ μ₯νλ μλ£κ΅¬μ‘°μ λλ€.
ν΄μ ν¨μλ ν€λ₯Ό μ λ ₯λ°μ κ³ μ μ κ·μΉμ λ°λΌ νΉμ μ«μ(ν΄μ κ°)λ₯Ό μμ±νκ³ , μ΄ ν΄μ κ°μ μ¬μ©ν΄ ν μ΄λΈμμ λ°μ΄ν°λ₯Ό μ μ₯ν μμΉλ₯Ό κ²°μ ν©λλ€.
μλ₯Ό λ€μ΄ μ λ ₯ λ°μ λ°μ΄ν°μ κΈΈμ΄λ₯Ό ν΄μ ν μ΄λΈμ ν¬κΈ°λ‘ λλ λλ¨Έμ§λ₯Ό ν΄μ κ°μΌλ‘ μ¬μ©ν μ μμ΅λλ€.
def hash_function(key): table_size = 10 # λ°μ΄ν°μ κΈΈμ΄λ₯Ό ν μ΄λΈ ν¬κΈ°λ‘ λλ λλ¨Έμ§λ₯Ό ν΄μ κ°μΌλ‘ μ¬μ© return len(key) % table_size
μλ₯Ό λ€μ΄ "apple"
μ΄λΌλ ν€λ₯Ό ν΄μ ν
μ΄λΈμ ν¬κΈ°κ° 10μΈ ν΄μ ν¨μμ λ£μΌλ©΄, appleμ κΈΈμ΄κ° 5μ΄λ―λ‘ 5 % 10 = 5
κ° ν΄μ κ°μΌλ‘ λ°νλ©λλ€.
μ΄λ κ² λ°νλ ν΄μ κ°μ λ°λΌ, ν΄μ ν¨μλ "apple"
μ΄λΌλ ν€μ κ·Έμ ν΄λΉνλ κ°μ ν΄μ ν
μ΄λΈμ 5λ²μ§Έ μμΉμ μ μ₯ν©λλ€.
νμ΄μ¬μμ ν΄μ ν μ΄λΈ ꡬννκΈ°
νμ΄μ¬μμλ 리μ€νΈμ ν΄μ ν¨μλ₯Ό μ΄μ©ν΄ κ°λ¨ν ν΄μ ν μ΄λΈμ ꡬνν μ μμ΅λλ€.
class HashTable: # ν΄μ ν μ΄λΈ μ΄κΈ°ν def __init__(self, size): self.size = size self.table = [None] * size # ν€λ₯Ό μ¬μ΄μ¦λ‘ λλ λλ¨Έμ§λ₯Ό ν΄μ κ°μΌλ‘ μ¬μ©νλ ν΄μ ν¨μ def hash_function(self, key): return hash(key) % self.size # ν€μ κ°μ ν΄μ ν μ΄λΈμ μ μ₯ def insert(self, key, value): index = self.hash_function(key) self.table[index] = value print(f"Key: {key} -> Index: {index}, Value: {value}κ° ν μ΄λΈμ μ μ₯λμμ΅λλ€.")
μ½λ μ€λͺ
-
HashTable ν΄λμ€: ν΄μ ν μ΄λΈμ μ μνλ ν΄λμ€μ λλ€.
__init__
λ©μλμμ ν΄μ ν μ΄λΈμ ν¬κΈ°λ₯Ό μ€μ νκ³ , κ·Έ ν¬κΈ°λ§νΌμ 리μ€νΈλ₯Ό μμ±ν©λλ€. -
hash_function λ©μλ: νμ΄μ¬μ λ΄μ₯
hash
ν¨μλ₯Ό μ΄μ©ν΄ ν€λ₯Ό ν΄μ κ°μΌλ‘ λ³ννκ³ , μ΄ κ°μ ν μ΄λΈ ν¬κΈ°λ‘ λλ μ μ₯ν μΈλ±μ€λ₯Ό κ²°μ ν©λλ€. -
insert λ©μλ: ν€μ κ°μ λ°μ ν΄μ ν μ΄λΈμ μ μ₯ν©λλ€. ν€λ₯Ό ν΄μ ν¨μλ‘ μ²λ¦¬ν΄ λμ¨ μΈλ±μ€μ κ°μ μ μ₯ν©λλ€.
-
search λ©μλ: ν€λ₯Ό μ΄μ©ν΄ ν΄μ ν μ΄λΈμμ κ°μ κ²μν©λλ€. ν΄λΉ ν€κ° μ μ₯λ μΈλ±μ€λ₯Ό μ°Ύμ κ°μ λ°νν©λλ€.
ν΄μ ν μ΄λΈμ μΈμ μ¬μ©λλμ?
ν΄μ ν μ΄λΈμ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² κ²μνκ³ μ μ₯ν μ μλ μλ£κ΅¬μ‘°λ‘, λμ©λ λ°μ΄ν°λ² μ΄μ€λ μΊμ λ±μμ μ¬μ©λ©λλ€.
ν΄μ ν μ΄λΈμ ν€μ κ°μ μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ΄λ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result