TIL ( ํ•ด์‹œํ…Œ์ด๋ธ”๊ณผ ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ )

2024. 7. 29. 23:43ใ†TIL

๐Ÿ“‘ ํ•ด์‹œ ํ…Œ์ด๋ธ” (Hash Table)

 

์˜์˜

 

ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ ํ•ด์‹œ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

์žฅ์ 

 

- ๋น ๋ฅธ ๊ฒ€์ƒ‰ ์†๋„:ํ‰๊ท ์ ์œผ๋กœ O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์–ด ๋งค์šฐ ๋น ๋ฅด๋‹ค
- ์ง๊ด€์ ์ธ ํ‚ค-๊ฐ’ ์Œ ์ €์žฅ: ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๋ฐ ๊ฒ€์ƒ‰์ด ํ‚ค๋ฅผ ํ†ตํ•ด ์ง๊ด€์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค.
- ์œ ์—ฐํ•œ ํฌ๊ธฐ ์กฐ์ •: ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

( ๐Ÿ’ก  O(1)์€ "์ƒ์ˆ˜ ์‹œ๊ฐ„"์ด๋ผ๊ณ  ํ•˜๋ฉฐ, O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์–ด๋–ค ์ž‘์—…์„ ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ํ•ญ์ƒ ์ผ์ •ํ•˜๋‹ค๋Š” ์˜๋ฏธํ•œ๋‹ค. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€๋Š” ์ƒ๊ด€์—†์ด ๊ฐ™์€ ์‹œ๊ฐ„์— ์ž‘์—…์ด ๋๋‚จ์„ ์˜๋ฏธํ•œ๋‹ค. )

๋‹จ์ 

 

- ์ถฉ๋Œ ์ฒ˜๋ฆฌ: ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ‚ค๊ฐ€ ๋™์ผํ•œ ํ•ด์‹œ ๊ฐ’์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

- ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ: ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ์„ ๋•Œ๋„ ์ผ์ •๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ์ตœ์•…์˜ ๊ฒฝ์šฐ O(n) ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

- ์ •๋ ฌ ๋ถˆ๊ฐ€๋Šฅ: ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ˆœ์„œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ถˆํŽธํ•˜๋‹ค.

 

๐Ÿ“‘์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ (Binary Search Tree, BST)

 

์˜์˜

 

์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์ง€๋ฉฐ, ๊ฐ ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํŠน์„ฑ์„ ๊ฐ–๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ์ด๋‹ค.

 

์žฅ์ 

- ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ์œ ์ง€: ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ๋œ ํ˜•ํƒœ๋กœ ์œ ์ง€ํ•˜๋ฏ€๋กœ, ์ค‘์œ„ ์ˆœํšŒ๋ฅผ ํ†ตํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

- ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰: ํ‰๊ท ์ ์œผ๋กœ O(log n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํžˆ ๊ท ํ˜• ์žกํžŒ ํŠธ๋ฆฌ์ธ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.

- ๋™์  ํฌ๊ธฐ ์กฐ์ •: ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ ํŠธ๋ฆฌ๊ฐ€ ์ž๋™์œผ๋กœ ์กฐ์ •๋œ๋‹ค.

 

๋‹จ์ 

 

- ์ตœ์•…์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์ €ํ•˜: ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ, ํŠธ๋ฆฌ๊ฐ€ ํŽธํ–ฅ๋˜์–ด O(n)์˜ ์„ฑ๋Šฅ์„ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค.

- ๊ท ํ˜• ์œ ์ง€ ํ•„์š”: ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋ฆฌ๋ฅผ ๊ท ํ˜• ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋ณต์žกํ•œ ๊ตฌํ˜„: ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ๋น„ํ•ด ๊ตฌํ˜„์ด ๋ณต์žกํ•  ์ˆ˜ ์žˆ๋‹ค. (ex. ๊ท ํ˜• ์žกํžŒ ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ)