Skip to main content

DataStructure & Algorithm

๐Ÿ“„๏ธ HashTable

ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํšจ์œจ์ ์ธ ํƒ์ƒ‰์„ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ์„œ key-value ์Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. hash function h ์— key๊ฐ’์„ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์–ด ์–ป์€ ํ•ด์‹œ๊ฐ’ h(k) ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์— (key, value) ๋ฐ์ดํ„ฐ ์Œ์„ ์ €์žฅํ•œ๋‹ค. (key, value) ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ๊ฐ์˜ ๊ณต๊ฐ„์„ slot ๋˜๋Š” bucket์ด๋ผ๊ณ  ํ•œ๋‹ค.

๐Ÿ“„๏ธ Tree

ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ(Node)์™€ ๊ฐ„์„ (Edge)์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํŠธ๋ฆฌ ๊ตฌ์กฐ๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฃจํŠธ(Root)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ตœ์ƒ์œ„ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.

๐Ÿ“„๏ธ Graph

๊ทธ๋ž˜ํ”„(G)๋Š” ์ •์ (vertex)๋“ค์˜ ์ง‘ํ•ฉ V์™€ ์ด๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (Edge)๋“ค์˜ ์ง‘ํ•ฉ E๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ •์ ์€ ๊ทธ๋ž˜ํ”„ ๋‚ด์˜ ๊ฐœ๋ณ„์ ์ธ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ„์„ ์€ ์ •์  ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๐Ÿ“„๏ธ Dynamic Programming

๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming, DP)์€ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„๊ณ , ์ด ํ•˜์œ„ ๋ฌธ์ œ๋“ค์˜ ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜์—ฌ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์ด๋‹ค. ์ค‘๋ณต๋œ ๊ณ„์‚ฐ์„ ํ”ผํ•˜๋ฉด์„œ ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.