๐Ÿ—ฃ๏ธ ์‹ ์ž… ์ธํ„ฐ๋ทฐ/์ž๋ฃŒ๊ตฌ์กฐ

์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ ์‹ค์ „ ๊ธฐ์ถœ : ํ•ด์‹œ

์ซ€๋ƒ  2024. 1. 2. 20:43

๋ฉด์ ‘๊ด€ : ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

 

๋‚˜ : ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์—ฐ๊ด€๋ฐฐ์—ด ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜์—ฌ Key์— Value๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

๋ฉด์ ‘๊ด€ : ์—ฐ๊ด€๋ฐฐ์—ด์ด ๋ญ”๊ฐ€์š”?

 

๋‚˜ : ์—ฐ๊ด€๋ฐฐ์—ด์€ ํ‚ค ํ•˜๋‚˜์™€ ๊ฐ’ ํ•˜๋‚˜๊ฐ€ ์—ฐ๊ด€๋˜์–ด ์žˆ์œผ๋ฉฐ ํ‚ค๋ฅผ ํ†ตํ•ด ์—ฐ๊ด€๋˜๋Š” ๊ฐ’์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๋ฉด์ ‘๊ด€ : ๊ณ„์† ์„ค๋ช…ํ•ด ๋ณด์„ธ์š”.

 

๋‚˜ : ํ•ด์‹œ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ์†๋„์— ์น˜์ค‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํŠน์ • ํ‚ค ์ž…๋ ฅ์„ ๋„ฃ์œผ๋ฉด ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํŠน์ • ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํŠน์ • ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ค๋‹ˆ๋‹ค.

 

๋ฉด์ ‘๊ด€ : ํŠน์ • ์—ฐ์‚ฐ์˜ ์˜ˆ๋ฅผ ๊ฐ„๋‹จํžˆ ๋“ค์–ด์ฃผ์‹ค๋ž˜์š”?

 

๋‚˜ : ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋“ค์–ด์˜ค๋Š” Key๊ฐ’์„ ๋ชจ๋‘ 100์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์„ ํ•œ๋‹ค๋ฉด 110, 120, 130 ์ด๋ž€ ๊ฐ’์ด ๋“ค์–ด์˜ฌ ๋•Œ 10,20,30์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ์ค๋‹ˆ๋‹ค.

 

๋ฉด์ ‘๊ด€ : ๋ฆฌ์†Œ์Šค๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ์†๋„์— ์น˜์ค‘ํ–ˆ๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ ๊ทธ ์˜๋ฏธ๊ฐ€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

 

๋‚˜ : ์•„๊นŒ์˜ ์˜ˆ๋ฅผ ๋‹ค์‹œ ๋“ค์–ด์„œ ๋ชจ๋“  Key๊ฐ’์„ 100์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ 110, 210 ์ด ๋“ค์–ด์˜ค๋ฉด ๋‘˜ ๋‹ค 10์ด๋ผ๋Š” ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๋•Œ ํ•ด์‹œ ์ถฉ๋Œ์ด ์ผ์–ด๋‚ฌ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” linked list ๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋ฏธ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ linked list ์— ํ‚ค, ๊ฐ’ ์Œ์„ ์—ฐ๊ฒฐํ•ด ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•˜๋ ค๊ณ  ๋งŒ๋“  ๊ตฌ์กฐ๊ฐ€ ๋ฆฌ์ŠคํŠธ๋กœ ๊ณ„์† ์ด์–ด์ง€๊ธฐ๋งŒ ํ•ด์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์†Œ๋ชจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋ฉด์ ‘๊ด€ : ๋˜ ๋‹ค๋ฅธ ํ•ด์‹œ ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฒ•์ด ์žˆ์„๊นŒ์š”?

 

๋‚˜ : Linear Probing (์„ ํ˜• ํƒ์‚ฌ) ์ด๋ž€ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์ด๋ฏธ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ž๋ฆฌ๊ฐ€ ๋นˆ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„์„œ ๊ฐ’์„ ๋„ฃ์–ด๋‘๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๋” ์ด์ƒ Linear Probing ์„ ํ•  ์ž๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์— table resizing ์„ ํ†ตํ•ด์„œ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฐ ํ›„, ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ํ•ด์‹œ ํ•จ์ˆ˜์— ๋„ฃ์–ด์„œ ์žฌ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

๋ฉด์ ‘๊ด€ : ํ•ด์‹œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

 

๋‚˜ : ํ•ด์‹œ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด O(1) ์˜ ์ƒ์ˆ˜์‹œ๊ฐ„ ์ ‘๊ทผ ์‹œ๊ฐ„์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฒ„์ผ“ ์•ˆ์˜ ๋ชจ๋“  ๊ฐ’๋“ค์„ ์กฐ์‚ฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(N)์˜ ์ ‘๊ทผ ์‹œ๊ฐ„์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.