๐Ÿ’ป

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต - Divide and Conquer ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ธฐ๋ณธ๊ธฐ ๋‹ค์ง€๊ธฐ

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต - Divide and Conquer

๋˜ํšจ๋‹ˆ 2020. 2. 5. 18:14

๋ถ„ํ•  ์ •๋ณต๋ฒ•์ด๋ž€? ๋ฌธ์ œ์˜ ์‚ฌ๋ก€๋ฅผ 2๊ฐœ ์ด์ƒ์˜ ๋” ์ž‘์€ ์‚ฌ๋ก€๋กœ ๋‚˜๋ˆ„์–ด(divide) ๊ฐ ์ž‘์€ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ํ•ด๋‹ต(conquer)์„ ์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉด ์ด๋“ค์˜ ํ•ด๋‹ต์„ ๊ฒฐํ•ฉ(combine)ํ•˜์—ฌ ์›๋ฌธ์ œ์˜ ํ•ด๋‹ต์„ ์–ป๋Š” ๋ฐฉ์‹.

 

- ๋ฌธ์ œ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •์€ ํ•ด๋‹ต์„ ์‰ฝ๊ฒŒ ์–ป์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค. 

- ํ•˜ํ–ฅ์‹(top-down) ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด๋‹ค.

  • ๋ถ„ํ• (Divide) : ํ•ด๊ฒฐํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.
  • ์ •๋ณต(Conquer): ๋‚˜๋ˆˆ ์ž‘์€ ๋ฌธ์ œ๋ฅผ ๊ฐ๊ฐ ํ•ด๊ฒฐํ•œ๋‹ค. 
  • ํ†ตํ•ฉ(Combine): (ํ•„์š”ํ•˜๋‹ค๋ฉด) ํ•ด๊ฒฐ๋œ ํ•ด๋‹ต์„ ๋ชจ์€๋‹ค.

- ๋ณดํ†ต ์žฌ๊ท€ ํ”„๋กœ์‹œ์ €๋กœ ๋จผ์ € ํ•ด๊ฒฐํ•œ ๋‹ค์Œ์— ๋ณด๋‹ค ํšจ์œจ์ ์ธ ๋ฐ˜๋ณต ํ”„๋กœ์‹œ์ €๊ฐ€ ์—†๋Š”์ง€ ๊ฒ€ํ† ํ•œ๋‹ค. 

 

- ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ด์ง„ ๊ฒ€์ƒ‰(BinarySearch)
  • ํ•ฉ๋ณ‘ ์ •๋ ฌ(MergeSort) 
  • ๋น ๋ฅธ ์ •๋ ฌ(QuickSort)
  • ์ตœ๋Œ€-์ตœ์†Œ๊ฐ’ ์ฐพ๊ธฐ

 

๋ฐ˜์‘ํ˜•
Comments