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

์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ : ์ž๋ฃŒ๊ตฌ์กฐ 01 ์ด๋ก 

์ซ€๋ƒ  2023. 12. 18. 16:17

 

[์ž๋ฃŒ๊ตฌ์กฐ 02 ์ฝ”๋“œ] ํฌ์ŠคํŠธ์—์„œ๋Š” C++ ์–ธ์–ด๋กœ ์ž๋ฃŒ๊ตฌ์กฐ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•ด ๋ด…๋‹ˆ๋‹ค. 


๐Ÿ—ฃ๏ธ ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด์ ์ด ๋ญ”์ง€ ์•„๋Š”๋Œ€๋กœ ์„ค๋ช…ํ•ด์ฃผ์‹ค๋ž˜์š”? 

 

๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐฐ์—ด์€ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํŠน์ • ์ธ๋ฑ์Šค์˜ ๋ฐ์ดํ„ฐ์— ์ฆ‰์‹œ ์ ‘๊ทผ (random access `O(1)`) ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ฝ๋Š” ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ๋˜๋Š” ์‚ฝ์ž… ์‹œ ์š”์†Œ๋“ค์˜ ์ธ๋ฑ์Šค๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ด์„œ ๋น„๊ต์  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. 

 

๋ฐ˜๋ฉด์— ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ๋…ธ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•˜์—ฌ ๋…ผ๋ฆฌ์  ์—ฐ์†์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์„œ ์ž„์˜ ์ ‘๊ทผ์„ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์ธ๋ฑ์Šค๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•œ ๋ฒˆ์— ํŠน์ • ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  ํ•ด๋‹น ์ธ๋ฑ์Šค์— ๋„๋‹ฌํ•˜๊ธฐ๊นŒ์ง€ `O(n)`์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์‹œ ๋…ธ๋“œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜์–ด์„œ `O(1)`์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ๋„ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์„ ๋•Œ์—๋‚˜ `O(1)`์ด๊ณ , ์‹ค์งˆ์ ์œผ๋กœ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๋ ค๋Š” ์ธ๋ฑ์Šค๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๋ฐ `O(n)`์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. 

 

๋ฐฐ์—ด์˜ ์ฃผ๋œ ์žฅ์ ์€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๊ณผ append ๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ผ๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ์„ ์–ธ์‹œ์— fixed size๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

์ด์™€ ๋ฐ˜๋ฉด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” Runtime ์ค‘์—์„œ๋„ size ๋ฅผ ๋Š˜๋ฆฌ๊ณ  ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ์‹œ์ ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋ฏธ๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ initial size ๋ฅผ ๊ณ ๋ฏผํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ํ•„์š”ํ•œ ๋งŒํผ memory allocation์„ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 


๐Ÿ—ฃ๏ธ ์Šคํƒ๊ณผ ํ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋‚˜์š”?

 

์Šคํƒ์€, ์„ ์ž…ํ›„์ถœ์˜ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด / ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฃผ๋กœ ๋ฐฐ์—ด์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์€ ๋ธŒ๋ผ์šฐ์ €์˜ '๋’ค๋กœ๊ฐ€๊ธฐ' ๊ธฐ๋Šฅ์ด๋‚˜, ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ์Šคํƒ ์˜์—ญ ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š” ์ฃผ์†Œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. 

 

ํ๋Š”, ์„ ์ž…์„ ์ถœ์˜ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด / ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฃผ๋กœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํ๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์€ ํ”„๋ฆฐํ„ฐ ํ, CPU ์Šค์ผ€์ค„๋ง์˜ Ready Queue ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ—ฃ๏ธ ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

 

์„ ์ž…์„ ์ถœ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ํ์™€ ๋‹ค๋ฅด๊ฒŒ, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์›์†Œ๋ถ€ํ„ฐ ์šฐ์„ ์ ์œผ๋กœ ๋น ์ ธ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๊ฐ ์š”์†Œ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ํ™œ์šฉํ•ด ์ •๋ ฌํ•˜๊ฑฐ๋‚˜ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ํž™์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋จ€, ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์—๋Š” ์ฃผ๋กœ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ์ด ๋ชจ๋‘ `O(logN)` ์ด ๋ณด์žฅ๋œ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. 


๐Ÿ—ฃ๏ธ ํž™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? 

 

ํž™์€ ์™„์ „์ด์ง„ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜๋กœ, ์ตœ๋Œ€ ํž™๊ณผ ์ตœ์†Œ ํž™์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ ํž™์€ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋Š” ์กฐ๊ฑด์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ ํž™์€ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ ํž™๊ณผ ์ตœ์†Œ ํž™์„ ์ด์šฉํ•ด ๊ฐ๊ฐ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์„œ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜, ํž™ ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

๐Ÿ—ฃ๏ธ ํž™์˜ ์‚ฝ์ž…,์‚ญ์ œ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”!

 

๋‘ ์—ฐ์‚ฐ ๋ชจ๋‘ ๋ชจ๋‘ ํŠธ๋ฆฌ์˜ ๋†’์ด๋งŒํผ ์ฆ‰ `O(logN)` ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ `O(logN)` ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

 

ํž™์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ๋Š”, ํž™์˜ ๋งจ ๋์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์šฐ์„ ์ˆœ์œ„(์ตœ๋Œ“๊ฐ’ ๋˜๋Š” ์ตœ์†Ÿ๊ฐ’)๋ฅผ ๋น„๊ตํ•ด ๋ถ€๋ชจ ๋…ธ๋“œ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ฉด์„œ ๋ฃจํŠธ ๋…ธ๋“œ๊นŒ์ง€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

 

ํž™์—์„œ ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‚ญ์ œํ•œ ํ›„์—๋Š” ๋ฃจํŠธ ๋…ธ๋“œ ์ž๋ฆฌ์— ํž™์˜ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ(๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ)๋ฅผ ์˜ฎ๊ธด ํ›„ ํž™์„ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฝ์ž… ๋ฐ ์‚ญ์ œ๋ฅผ ํ•˜๋ฉด ํž™์˜ ๊ตฌ์กฐ๊ฐ€ ๋ฌด๋„ˆ์ง€๊ฒŒ ๋˜๋Š”๋ฐ, ๋‹ค์‹œ Heap ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ Heapify ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ—ฃ๏ธ ํž™์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ท ํ˜•์ด์ง„ํŠธ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š๋‚˜์š”?

 

๊ณตํ†ต์ : ํž™๊ณผ ๊ท ํ˜• ์ด์ง„ ํŠธ๋ฆฌ ๋ชจ๋‘ ์ด์ง„ ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ์ด๋ฉฐ, ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ์ด ๋กœ๊ทธ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

์ฐจ์ด์ : ํž™์€ ํŠธ๋ฆฌ์˜ ์ตœ์ƒ๋‹จ(๋ฃจํŠธ)์— ์žˆ๋Š” ์š”์†Œ์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ ‘๊ทผ(์ตœ๋Œ€๊ฐ’ ๋˜๋Š” ์ตœ์†Œ๊ฐ’)์— ์ค‘์ ์„ ๋‘” ๋ฐ˜๋ฉด, ๊ท ํ˜• ์ด์ง„ ํŠธ๋ฆฌ๋Š” ํŠธ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•œ ๋น ๋ฅธ ๊ฒ€์ƒ‰์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

 

ํŠน์ • ์ƒํ™ฉ์—์„œ, ์˜ˆ๋ฅผ ๋“ค์–ด ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ์‹œ, ํž™๊ณผ ๊ท ํ˜• ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์ƒํ˜ธ ๋Œ€์ฒด ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ๊ฐ์˜ ์ž๋ฃŒ ๊ตฌ์กฐ๊ฐ€ ๊ฐ€์ง„ ํŠน์„ฑ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๐Ÿ—ฃ๏ธ ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ ์‚ฝ์ž…, ์‚ญ์ œ ๊ณผ์ •์€ ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๋‚˜์š”?

 

์‚ฝ์ž…: ๋ฃจํŠธ ๋…ธ๋“œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๊ฐ’์„ ๋น„๊ตํ•ด ๋‚˜๊ฐ€๋ฉด์„œ ์‚ฝ์ž…ํ•  ์ž๋ฆฌ๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„๊ตํ•˜๋Š” ๋…ธ๋“œ๋ณด๋‹ค ๊ฐ’์ด ํฐ ๊ฒฝ์šฐ๋Š” ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ž‘์€ ๊ฒฝ์šฐ๋Š” ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ญ์ œ: ์ž์‹๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋‹ค: ํ•ด๋‹น ๋…ธ๋“œ๋งŒ ์‚ญ์ œํ•˜๋ฉด ๋œ๋‹ค.
  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ 1๊ฐœ: ์ž์‹ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•œ ๋…ธ๋“œ์˜ ์œ„์น˜๋กœ ์˜ฎ๊ธฐ๋ฉด ๋œ๋‹ค.
  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ: ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„, ์‚ญ์ œํ•œ ๋…ธ๋“œ ์œ„์น˜๋กœ ์˜ฎ๊ธฐ๋ฉด ๋œ๋‹ค. ๋˜๋Š” ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์‚ญ์ œํ•œ ๋…ธ๋“œ ์œ„์น˜๋กœ ์˜ฎ๊ฒจ๋„ ๋œ๋‹ค.

๐Ÿ—ฃ๏ธ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ, ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ, ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

์ด์ง„ ํŠธ๋ฆฌ๋Š” ์ž์‹ ๋…ธ๋“œ๋ฅผ ์ตœ๋Œ€ 2๊ฐœ๊นŒ์ง€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 3๊ฐ€์ง€ ๋ชจ๋‘ ์ด์ง„ ํŠธ๋ฆฌ์ด์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๐Ÿ—ฃ๏ธ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ด๊ณ , ์ด๋ฅผ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ๋ฌด์—‡์ธ๊ฐ€์š”?

 

ํ‰๊ท ์ ์œผ๋กœ `O(logN)`์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ ๋ถˆ๊ท ํ˜•์ด ๋ฐœ์ƒํ•˜๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋ฉด์—์„œ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠธ๋ฆฌ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ํŽธํ–ฅ๋˜์–ด ์žˆ๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ์— `O(n)`์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

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


๐Ÿ—ฃ๏ธ ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

๊ทธ๋ž˜ํ”„๋Š” ์ •์ ๊ณผ ๊ฐ„์„ ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์™€ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ๋ชจ๋‘ ์กด์žฌํ•˜๋ฉฐ, ์‚ฌ์ดํด์€ ์žˆ์„ ์ˆ˜๋„, ์—†์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ณ„์ธต ๊ด€๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ํŠธ๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ข…๋ฅ˜๋กœ, ๋ฐฉํ–ฅ์„ฑ์ด ์žˆ์œผ๋ฉด์„œ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ณ„์ธต ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด์„œ ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๋ผ๋Š” ๊ด€๊ณ„์„ฑ๊ณผ ๋ฃจํŠธ ๋…ธ๋“œ๋ผ๋Š” ๊ฐœ๋…์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜ํ”„๋Š” ํŠธ๋ฆฌ๋ณด๋‹ค ๋” ํฌ๊ด„์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํŠธ๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”„๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ชจ๋“  ๊ทธ๋ž˜ํ”„๋ฅผ ํŠธ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆœ ์—†์Šต๋‹ˆ๋‹ค.


๐Ÿ—ฃ๏ธ BFS์™€ DFS์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

๋‘ ๊ทธ๋ž˜ํ”„ ๋ชจ๋‘ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

BFS๋Š” ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์œผ๋กœ, ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋“ค์„ ๋จผ์ € ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ํ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , ๋น„๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: ์†Œ๋ฌธ)

DFS๋Š” ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์œผ๋กœ, ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด ์ตœ๋Œ€ ๊นŠ์ด๊นŒ์ง€ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ ๋˜๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: ๋น„๋ฐ€)


๐Ÿ—ฃ๏ธ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 

ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํ‚ค์™€ ๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋กœ ํ‚ค์— ๋Œ€ํ•œ ํ•ด์‹œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ•ด์‹œ๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์—์„œ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ธ๋ฑ์Šค์ž…๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ `O(1)`์ด๋ผ๋Š” ๋น ๋ฅธ ์‹œ๊ฐ„ ์•ˆ์— ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๋ฅผ ๋„ฃ์—ˆ์„ ๋•Œ ๋™์ผํ•œ ๊ฐ’์ด ๋‚˜์˜ค๋Š” ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ—ฃ๏ธ ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์–ด๋–ป๊ฒŒ `O(1)`์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

 

ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ํ‚ค๋กœ ์ ‘๊ทผํ•˜๋ฉด, ํ•ด์‹œ ํ•จ์ˆ˜์— ํ‚ค ๊ฐ’์„ ์ง‘์–ด ๋„ฃ์–ด์„œ ๋‚˜์˜จ ํ•ด์‹œ ๊ฐ’์„ ์ €์žฅ์†Œ์˜ ์ธ๋ฑ์Šค๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ธ๋ฑ์Šค์— ๊ฐ’์„ ์ €์žฅํ•˜๋ฏ€๋กœ, ํ•ด์‹œ ํ•จ์ˆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ œ์™ธํ•˜๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„ `O(1)`์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ—ฃ๏ธ ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•  ๋•Œ ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ๐ŸŒŸ

 

ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๋Š” ํ‚ค ๊ฐ’์€ ๋ฌดํ•œํ•˜๊ณ , ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‚˜์˜จ ํ•ด์‹œ ๊ฐ’์€ ์œ ํ•œํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”.

์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค์— ๋Œ€ํ•ด ๊ฐ™์€ ํ•ด์‹œ๊ฐ’์„ ๊ฐ€์ง€๋Š” 'ํ•ด์‹œ ์ถฉ๋Œ' ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ Chaining ๋ฐฉ์‹๊ณผ Open Addressing ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฒด์ด๋‹์€ ๊ฐ™์€ ํ•ด์‹œ๊ฐ€ ๋‚˜์˜ค๋Š” ํ‚ค์˜ ๊ฐ’์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค์˜ ๋ฒ„ํ‚ท์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•ด, ์ด๋ฏธ ๊ฐ’์ด ์กด์žฌํ•˜๋”๋ผ๋„ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ํ•ด๋‹น ๊ฐ’์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ์ €์žฅ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ œ์•ฝ์„ ์ ๊ฒŒ ๋ฐ›์ง€๋งŒ, ํ•˜๋‚˜์˜ ํ•ด์‹œ์— ๋…ธ๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 
  • ๊ฐœ๋ฐฉ ์ฃผ์†Œ๋ฒ•์€ ํ•ด์‹œ ์ถฉ๋Œ ๋ฐœ์ƒ ์‹œ ๋น„์–ด ์žˆ๋Š” ๊ณต๊ฐ„์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํŠน์ •ํ•œ ๊ฐ„๊ฒฉ๋งŒํผ ์ด๋™ ํ›„ ๋น„์–ด์žˆ๋Š” ์ฃผ์†Œ ๊ฐ’์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์„ธ๋ถ€์ ์œผ๋กœ๋Š” ์„ ํ˜• ์กฐ์‚ฌ๋ฒ•, ์ด์ฐจ ์กฐ์‚ฌ๋ฒ•, ์ด์ค‘ ํ•ด์‹ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ https://www.nossi.dev/436b3b11-fa77-4dcc-9d24-f6b034d6770e


๐Ÿ—ฃ๏ธ ์ฒด์ด๋‹, ๊ฐœ๋ฐฉ์ฃผ์†Œ๋ฒ•์˜ ์žฅ๋‹จ์ ์„ ๋น„๊ตํ•ด์ฃผ์‹œ๊ฒ ์–ด์š”?

 

์ฒด์ด๋‹ ๋ฐฉ์‹ 

 

์žฅ์ 

1) ํ•œ์ •๋œ ์ €์žฅ์†Œ(Bucket) ์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

2) ํ•ด์‹œ ํ•จ์ˆ˜(Hash Function) ์„ ์„ ํƒํ•˜๋Š” ์ค‘์š”์„ฑ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์ ๋‹ค.

3) ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฏธ๋ฆฌ ๊ณต๊ฐ„์„ ์žก์•„ ๋†“์„ ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

๋‹จ์ 

1) ํ•œ Hash์— ์ž๋ฃŒ๋“ค์ด ๊ณ„์† ์—ฐ๊ฒฐ๋œ๋‹ค๋ฉด(์ ๋ฆผ ํ˜„์ƒ) ๊ฒ€์ƒ‰ ํšจ์œจ์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค.

2) ์™ธ๋ถ€ ์ €์žฅ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•œ๋‹ค.

3) ์™ธ๋ถ€ ์ €์žฅ ๊ณต๊ฐ„ ์ž‘์—…์„ ์ถ”๊ฐ€๋กœ ํ•ด์•ผ ํ•œ๋‹ค.

 

๊ฐœ๋ฐฉ์ฃผ์†Œ๋ฒ• ๋ฐฉ์‹

 

์žฅ์ 

1) ๋˜ ๋‹ค๋ฅธ ์ €์žฅ๊ณต๊ฐ„ ์—†์ด ํ•ด์‹œํ…Œ์ด๋ธ” ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

 

๋‹จ์ 

1) ํ•ด์‹œ ํ•จ์ˆ˜์˜ ์„ฑ๋Šฅ์— ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ์„ฑ๋Šฅ์ด ์ขŒ์ง€์šฐ์ง€๋ฉ๋‹ˆ๋‹ค.

2) ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์ €์žฅ์†Œ๋ฅผ ๋งˆ๋ จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


Reference

 

https://www.nossi.dev/fc5fc2ee-40f3-4d60-800a-5ef8fc57b4e5