๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กComputer ๐Ÿ’ป/์•Œ๊ณ ๋ฆฌ์ฆ˜ (7)

yeon's ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ•  ์ •๋ณต (Divide & Conquer)

๋ถ„ํ•  ์ •๋ณต (Divide & Conquer) : ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋‘˜ ์ด์ƒ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆˆ ๋’ค ๊ฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต์„ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•ด ๊ณ„์‚ฐํ•˜๊ณ , ๊ฐ ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ๋‹ต์œผ๋กœ๋ถ€ํ„ฐ ์ „์ฒด ๋ฌธ์ œ์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•ด ๋ƒ„ * ์ผ๋ฐ˜์ ์ธ ์žฌ๊ท€ ํ˜ธ์ถœ๊ณผ ๋‹ค๋ฅธ ์ ์€ ๋ฌธ์ œ๋ฅผ ๊ฑฐ์˜ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ๊ฒƒ! 1. ๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ณผ์ • (divide) 2. ๊ฐ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ตฌํ•œ ๋‹ต์„ ์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ณผ์ • (merge) 3. ๋” ์ด์ƒ ๋‹ต์„ ๋ถ„ํ• ํ•˜์ง€ ์•Š๊ณ  ๊ณง์žฅ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์ž‘์€ ๋ฌธ์ œ (base case) * 1๋ถ€ํ„ฐ n๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜: 1 + 2 + ... + n fastSum() = 1 + 2 + ... + n = (1 + 2 + ... + n/2) + ((n/2 +..