๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ• - ์ด์ง„ ํƒ์ƒ‰, ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ• - ์ด์ง„ ํƒ์ƒ‰, ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๋ถ„ํ• ์ •๋ณต(Divide-and-Conquer) ๋ฐฉ๋ฒ• - ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜ - ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• : ๋ถ„ํ• ์ •๋ณต(divide-and-conquer) ๋ฐฉ๋ฒ•, ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(dynamic programming) ๋ฐฉ๋ฒ•, ์š•์‹ฌ์Ÿ์ด(greedy) ๋ฐฉ๋ฒ• 1) ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์˜ ์›๋ฆฌ - ์ˆœํ™˜์ (recursive)์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ํ•˜ํ–ฅ์‹(top-down) ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์ฃผ์–ด์ง„ ๋ฌธ์ œ์˜ ์ž…๋ ฅ์„ ๋” ์ด์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์ˆœํ™˜์ ์œผ๋กœ ๋ถ„ํ• ํ•˜๊ณ  ๋ถ„ํ• ๋œ ์ž‘์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•œ ํ›„ ๊ทธ ํ•ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์›๋ž˜ ๋ฌธ์ œ์˜ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹ 2) ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์˜ ํŠน์ง• - ๋ถ„ํ• ๋œ ์ž‘์€ ๋ฌธ์ œ๋Š” ์›๋ž˜ ๋ฌธ์ œ์™€ ์„ฑ๊ฒฉ์ด ๋™์ผํ•˜๋‹ค. → ์ž…๋ ฅ ํฌ๊ธฐ๋งŒ ์ž‘์•„์ง - ๋ถ„ํ• ๋œ ๋ฌธ.. 2020. 3. 23.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„์™€ ๋ถ„์„ - ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ์ ๊ทผ์„ฑ๋Šฅ [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„์™€ ๋ถ„์„ - ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ์ ๊ทผ์„ฑ๋Šฅ 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ฃผ์–ด์ง„ ๋ฌธ์ œ, ์†์„ฑ, ์กฐ๊ฑด ๋“ฑ์— ๋”ฐ๋ผ ๋งค์šฐ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์ด๊ณ  ๋ฒ”์šฉ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•์€ ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์„ธ ๊ฐ€์ง€๋ฅผ ๊ผฝ์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•(Divide-and-Conquer) ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•(Dynamic Programming) ์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ•(Greedy) ๋”ฐ๋ผ์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์œ„ ์„ธ ๊ฐ€์ง€ ์„ค๊ณ„ ๊ธฐ๋ฒ•์€ ๊ผญ ์•Œ์•„๋‘ฌ์•ผ ํ• ๊ฒƒ์ด๋‹ค. 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ ๋ถ„์„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘๊ณผ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์–‘ → ๊ณต๊ฐ„ ๋ณต์žก๋„(Space Complexity) = ์ •์  ๊ณต๊ฐ„ + ๋™์  ๊ณต๊ฐ„ .. 2020. 3. 11.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋…๊ณผ ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋…๊ณผ ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜์™€ ์กฐ๊ฑด 1) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋“ค์˜ ๋‹จ๊ณ„์  ๋‚˜์—ด 2) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์กฐ๊ฑด ์ž…๋ ฅ : 0๊ฐœ ์ด์ƒ์˜ ์™ธ๋ถ€ ์ž…๋ ฅ ์ถœ๋ ฅ : 1๊ฐœ ์ด์ƒ์˜ ์ถœ๋ ฅ ๋ช…ํ™•์„ฑ : ๊ฐ ๋ช…๋ น์€ ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ๋ช…ํ™•ํ•ด์•ผ ํ•จ ์œ ํ•œ์„ฑ : ํ•œ์ •๋œ ์ˆ˜์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋จ ์œ ํšจ์„ฑ : ๋ชจ๋“  ๋ช…๋ น์€ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์กฐ๊ฑด์„ ํ•ฉ์ณ์„œ ์ •์˜ํ•˜์ž๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ์ปดํ“จํ„ฐ๊ฐ€ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ์ผ๋ จ์˜ ์œ ํ•œ๊ฐœ์˜ ๋ช…๋ น๋“ค์„ ์ˆœ์„œ์ ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๊ฒƒ์ด๋‹ค. 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์„ฑ ๋‹จ๊ณ„ 3. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‘œํ˜„/๊ธฐ์ˆ  ๋ฐฉ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ ์ผ์ƒ ์–ธ์–ด, ์˜์‚ฌ ์ฝ”๋“œ(Pseudo code), ์ˆœ์„œ๋„์˜ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ.. 2020. 3. 10.