๋ชฉ๋ก์ „์ฒด ๊ธ€ (118)

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ - 2. ํ€ต ์ •๋ ฌ(Quick Sort)

2. ํ€ต ์ •๋ ฌ ; Quick Sort 2.1 ๊ฐœ๋… ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ์ •๋ ฌ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ๋ณ‘ํ•ฉ ์ •๋ ฌ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ „์ฒด ์ง‘ํ•ฉ์„ ์ž‘์€ ํฌ๊ธฐ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ ๋’ค ๋‹ค์‹œ ํ•ฉ์น˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณ‘ํ•ฉ ์ •๋ ฌ์˜ ํ•ต์‹ฌ ์—ฐ์‚ฐ์€ ๋ณ‘ํ•ฉ์ธ ๋ฐ ๋น„ํ•ด ํ€ต ์ •๋ ฌ์˜ ํ•ต์‹ฌ ์—ฐ์‚ฐ์€ ๋ถ„ํ• ์ด๋‹ค. ํ€ต ์ •๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋œ๋‹ค. 1. ๋ถ„ํ• (Divide) : ์ •๋ ฌํ•  ์ง‘ํ•ฉ์„ ๊ธฐ์ค€๊ฐ’์„ ์ค‘์‹ฌ์œผ๋กœ ๋‘ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋ถ„ํ•  2. ์ •๋ณต(Conquer) : ๋ถ€๋ถ„์ง‘ํ•ฉ ๋‚ด์—์„œ ๊ธฐ์ค€๊ฐ’์˜ ์ •๋ ฌ ์œ„์น˜ ์„ ์ • ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ค€๊ฐ’์„ ํ”ผ๋ด‡(Pivot) ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ฒซ ๋ฒˆ์งธ ์›์†Œ / ๋งˆ์ง€๋ง‰ ์›์†Œ / ๊ฐ€์šด๋ฐ ์›์†Œ ๋“ฑ ์ž„์˜์˜ ์ˆœ์„œ์˜ ๊ฐ’์„ ์ •ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ •ํ•œ ๊ธฐ์ค€๊ฐ’์„ ์ค‘์‹ฌ์œผ๋กœ ์™ผ์ชฝ(L)๊ณผ ์˜ค๋ฅธ์ชฝ(R) ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋‚˜๋ˆ„์–ด ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ - 1. ๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)

1. ๋ณ‘ํ•ฉ ์ •๋ ฌ ; Merge Sort 1.1 ๊ฐœ๋… ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ์ •๋ ฌ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ์—ฌ๋Ÿฌ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ๋“ค์„ ๋ณ‘ํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ •๋ ฌ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€์˜ ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ์ง„ํ–‰๋œ๋‹ค. 1. ๋ถ„ํ• (Divide) : ํฐ ์ง‘ํ•ฉ์„ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋ถ„ํ•  2. ์ •๋ณต(Conquer) : ๋ถ€๋ถ„์ง‘ํ•ฉ ๋‚ด์˜ ์›์†Œ ์ •๋ ฌ 3. ๊ฒฐํ•ฉ(Combine) : ์ •๋ ฌ๋œ ๋ถ€๋ถ„์ง‘ํ•ฉ๋“ค์„ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๊ฒฐํ•ฉ ์›๋ฆฌ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋ณต์žกํ•ด ๋ณด์ด์ง€๋งŒ, ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ง‘ํ•ฉ A๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. A = { 3, 8, 7, 2, 5, 1, 4, 6 } ์ง‘ํ•ฉ A๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ณด์ž. ๋ณ‘ํ•ฉ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค...

[๋ฐฑ์ค€] 11727๋ฒˆ: 2×n ํƒ€์ผ๋ง 2 - C++

๋ฌธ์ œ 2×n ์ง์‚ฌ๊ฐํ˜•์„ 1×2, 2×1๊ณผ 2×2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ 2×17 ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šด ํ•œ๊ฐ€์ง€ ์˜ˆ์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ n ≤ 1,000) ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— 2×n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ 10,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. DP๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ. ์•ž์„œ ํ’€์—ˆ๋˜ 11726๋ฒˆ์ธ 2xn ํƒ€์ผ๋ง์„ ์กฐ๊ธˆ๋งŒ ์‘์šฉํ•˜๋ฉด ๋ฐ”๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋กœ ํ•œ ์นธ์„ 1x2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ• ํ•œ ๊ฐ€์ง€, ๊ฐ€๋กœ ๋‘ ์นธ์„ 2x1 ํƒ€์ผ์„ ์œ„์•„๋ž˜๋กœ ์Œ“์•„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜, 2x2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜์ธ ์ ์„ ๊ณ ๋ คํ•˜์—ฌ ์ ํ™”์‹์„ ์„ธ์šฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. D[n] = D[n - 1] + 2 * D[n - 2] ์ด ๋ฌธ์ œ ์—ญ์‹œ ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •๊ณผ ๋งค ์—ฐ์‚ฐ..