๐ํด์ํ
์ด๋ธ(Hash Table) ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ
๐ ํด์ํ
์ด๋ธ(Hash Table)์ด๋?
- *ํค(Key)**๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ
- ์ผ๋ฐ์ ์ผ๋ก ๋ด๋ถ์ ์ผ๋ก๋ ๋ฐฐ์ด(Array) + ํด์ํจ์(Hash Function) ์กฐํฉ์ผ๋ก ๊ตฌํ๋๋ค
- ์๊ฐ ๋ณต์ก๋
- ์ฝ์
(Insert): ํ๊ท O(1)
- ๊ฒ์(Search): ํ๊ท O(1)
- ์ญ์ (Delete): ํ๊ท O(1)
โ
ํด์ํ
์ด๋ธ์ด ํ์ํ ๊ฒฝ์ฐ
- ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋
- ํค-๊ฐ(Key-Value) ํํ๋ก ๋งคํ์ด ํ์ํ ๋
- ๋น๋์(ํ์)๋ฅผ ๋น ๋ฅด๊ฒ ์ธ์ผ ํ ๋
- ๋งค์นญ ๊ด๊ณ๋ฅผ ๋น ๋ฅด๊ฒ ์กฐํํด์ผ ํ ๋
๐ ์ฝ๋ฉ ํ
์คํธ ํด์ํ
์ด๋ธ ๋ฌธ์ ์ ๊ทผ ํ๋ฆ
1. ๋ฌธ์ ๋ฅผ ์ฝ๊ณ , "๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์์ผ ํ๋๊ฐ?" ๋ฅผ ๋จผ์ ํ๋จํ๋ค
2. ํ์ํ๋ค๋ฉด ํด์๋งต(๋๋ ๋์
๋๋ฆฌ)๋ฅผ ํ์ฉํ ์ง ๊ฒฐ์ ํ๋ค
3. ํค(Key)๋ฅผ ๋ฌด์์ผ๋ก ํ ์ง, ๊ฐ(Value)์ ๋ฌด์์ผ๋ก ํ ์ง ์ค์ ํ๋ค
4. ๋ฌธ์ ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ํด์๋งต์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค
5. ํ์ํ ๊ฒฝ์ฐ, ํด์๋งต์ ์กฐํํ๊ฑฐ๋ ๊ฐ๊ณตํ๋ค
6. ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค
โ๏ธ ํด์ํ
์ด๋ธ ๊ธฐ๋ณธ ํจํด
# ๋น ํด์๋งต ์์ฑ
hash_map = {}
# ๋ฐ์ดํฐ ์ฝ์
hash_map[key] = value
# ๋ฐ์ดํฐ ๊ฒ์
if key in hash_map:
value = hash_map[key]
# ๋ฐ์ดํฐ ์
๋ฐ์ดํธ
hash_map[key] += 1
# ๋ฐ์ดํฐ ์ญ์
del hash_map[key]
๐ ๏ธ ํด์ํ
์ด๋ธ ํ์ฉ ์์ ํ๋ฆ