๐Ÿ“šAlgorithm ------------/๊ฐœ๋…์ •๋ฆฌ 2

Composite Pattern

์กฐ๊ธˆ ์˜ˆ์ „์— ๊ณต๋ถ€ํ–ˆ๋˜ ๋””์ž์ธ ํŒจํ„ด์ธ๋ฐ, ๋‹ค์‹œ ๋ณต์Šตํ•˜๋ฉด์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค ๋””์ž์ธ ํŒจํ„ด๋„ ์ฐพ์•„๋ณด๋ฉฐ ๊ฐœ๋ฐœํ–ˆ๋˜ ์—ด์ • ์–ด๋””๊ฐ”๋‹ˆ ๐Ÿฅน Composite ๋œป OOP์—์„œ ์ปดํฌ์ง€ํŠธ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฐ์ฒด๋กœ ๋ชจ๋‘ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง ๊ฐ์ฒด ๊ทธ๋ฃน์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ Composite Pattern ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณตํ•ฉ ๊ฐ์ฒด/๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•จ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ž‘์„ฑ, ์ „์ฒด-๋ถ€๋ถ„ ๊ด€๊ณ„ ํ‘œํ˜„ ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ, ๊ฐœ๋ฐœ์ž๋Š” ๋ฆฌํ”„๋…ธ๋“œ์™€ ๋ธŒ๋žœ์น˜ ๊ตฌ๋ณ„ํ•ด์•ผํ•จ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ โ†’ ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉํ•ด์„œ ์ž‘์„ฑํ•œ๋‹ค๋˜๊ฐ€ Client ํด๋ž˜์Šค๋Š” Leaf์™€ Composite ํด๋ž˜์Šค์— ์ง์ ‘ ์ฐธ์กฐ ํ•˜์ง€ ๋งˆ์„ธ์šฅ ๐Ÿ™…โ€โ™€๏ธ๐Ÿ™…โ€โ™€๏ธ ์ธํ„ฐํŽ˜์ด์Šค์ธ Component๋งŒ ์ฐธ์กฐํ•˜๊ธฐ Leaf๋Š” Com..

์ž๋ฃŒ๊ตฌ์กฐ- ์ž๋ฃŒ๊ตฌ์กฐ ์ข…๋ฅ˜๋ฅผ ์•Œ์•„๋ณด์ž

์ž๋ฃŒ๊ตฌ์กฐ ์ข…๋ฅ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋„๋ก ํ•˜์ž ๊ต์ˆ˜๋‹˜... ์™œ ๋” ์ค‘์š”ํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์‹œ์ง€ ์•Š์œผ์…จ๋‚˜์š” ** ๋‚˜๋ฌด์œ„ํ‚ค์™€ ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ๋ฅผ ์ฐธ๊ณ  ํ•˜์˜€๋‹ค ** 1. ๋‹จ์ˆœ ๊ตฌ์กฐ ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๋งํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋˜๋Š” ์ž๋ฃŒํ˜•์ด ์—ฌ๊ธฐ์— ํ•ด๋‹น๋œ๋‹ค ๋‚˜๋Š” Python ๊ฐ™์ด ์ž๋ฃŒํ˜•์— ์œ ์—ฐํ•œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ์ ์‘ ์•ˆ๋˜๋Š”๊ฒŒ ์ž๋ฃŒํ˜•์ด์—ˆ๋‹ค C๋‚˜ C++์€ ์ž๋ฃŒํ˜•์— ์—„ํ•˜๋‹ค ์ž๋ฃŒํ˜•์˜ ์ข…๋ฅ˜๋Š” ๋งํฌ๋ฅผ ํ†ตํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค ์ž๋ฃŒํ˜• ๋ฒ”์œ„๋‚˜ ํฌ๊ธฐ ๊ฐ™์€ ์ƒ์„ธ ๋ถ€๋ถ„์€ ๋‹ค๋ฅธ ๊ฒŒ์‹œ๋ฌผ๋กœ ์ •๋ฆฌํ•˜๊ฒ ๋‹ค 2. ์„ ํ˜•๊ตฌ์กฐ ์„ ํ˜•๊ตฌ์กฐ๋Š” ์œ„์— ๊ทธ๋ฆผ์—์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ, ๋ฑ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค ๊ทธ๋ฆผ์—๋Š” ์—†์ง€๋งŒ ๋ฐฐ์—ด๋„ ํฌํ•จ๋จ ใ…‡ใ…‡ ๋ฆฌ์ŠคํŠธ๋Š” ์„ ํ˜• ๋ฆฌ์ŠคํŠธ(Linear List)์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (Linked List)๊ฐ€ ์žˆ๋‹ค ์„ ํ˜• ๊ตฌ..