2024. 10. 28. 08:32ใ์๊ณ ๋ฆฌ์ฆ
๐ ๋ถํ ์ ๋ณต(Divide and Conquer)
- ๋ถํ (divide): ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ ๋ฌธ์ (์ฌ์ด ๋ฌธ์ )๋ก ๋ถํ
- ์ ๋ณต(conquer): ์์ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ๊ฐ๊ฐ ํด๊ฒฐ
- ์กฐํฉ(combine): ํด๊ฒฐํ ๋ถ๋ถ ๋ฌธ์ ์ ๋ต์ ์ด์ฉํ์ฌ ๋ค์ ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ
- ์ด์ ? ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก "๋ถํ ํ๋ ๋ฐฉ์์ด ๋์ผํ" ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ
- ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ ๋๊น์ง ๊ณ์ํ์ฌ ๋ถํ
- ๋ถํ ์ ๋ณต์ ๋จ์
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์์ ํจ์ ํธ์ถ ํ์๊ฐ ๋ง์ด ๋ฐ์
- ์ด๋ ์ค๋ฒํค๋(overhead)๋ก ์ด์ด์ง๋ค.
๐ ๋ณํฉ ์ ๋ ฌ(Merge Sort)
- ๋ณํฉ ์ ๋ ฌ์ ์ ํ์ ์ธ ๋ถํ ์ ๋ณต(divide and conquer) ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ์๊ฐ ๋ณต์ก๋ O(NlogN)์ ๋ณด์ฅํ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋
- ๋ถํ (divide): ์ ๋ ฌํ ๋ฐฐ์ด(ํฐ ๋ฌธ์ )์ ๊ฐ์ ํฌ๊ธฐ์ ๋ถ๋ถ ๋ฐฐ์ด(์์ ๋ฌธ์ ) 2๊ฐ๋ก ๋ถํ
- ์ ๋ณต(conquer): ๋ถ๋ถ ๋ฐฐ์ด์ ์ ๋ ฌ (์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ)
- ์กฐํฉ(combine): ์ ๋ ฌ๋ ๋ถ๋ถ ๋ฐฐ์ด์ ํ๋์ ๋ฐฐ์ด๋ก ๋ค์ ๋ณํฉ
๐ ๋ณํฉ ์ ๋ ฌ์ ๋์ ๋ฐฉ์
- ๋ถํ (divide): ๋ถํ ์์ ์ ๋จ์ํ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ ๋ฐ์ผ๋ก ์ชผ๊ฐ๋ ๊ฒ
- ์ ๋ณต(conquer): ๋ ๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด์ "์ ๋ ฌ๋ ํ๋์ ๋ฐฐ์ด"๋ก ๋ง๋๋ ๊ฒ
- ๊ฐ ๋ถ๋ถ์ ๋ฐฐ์ด์ ์ด๋ฏธ ์ ๋ ฌ๋ ์ํ๋ก ๋ณธ๋ค.
- ๊ฐ ๋ถ๋ถ ๋ฐฐ์ด์ ๋ํ์ฌ ์ฒซ์งธ ์์๋ถํฐ ์์ํ์ฌ ํ๋์ฉ ํ์ธ
- ์ด ์์์ ๊ฐ์๊ฐ N๊ฐ์ผ ๋, O(N)์ ์๊ฐ ๋ณต์ก๋๊ฐ ์๊ตฌ๋๋ค.
- ์ฅ์ : ์ต์ ์ ๊ฒฝ์ฐ์๋ O(NlogN)์ ๋ณด์ฅํ ์ ์๋ค๋ ์ ์์ ํจ์จ์
- ๋จ์ : ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ, ์ ๋ณต(conquer) ๊ณผ์ ์์ ์์ ๋ฐฐ์ด์ด ํ์
์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest, https://ko.wikipedia.org/wiki/%ED%95%A9%EB%B3%91_%EC%A0%95%EB%A0%AC
ํฉ๋ณ ์ ๋ ฌ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ํฉ๋ณ ์ ๋ ฌ ๋๋ ๋ณํฉ ์ ๋ ฌ(์์ด: merge sort ๋จธ์ง ์ํธ[*])์ O(n log n) ๋น๊ต ๊ธฐ๋ฐ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ์ ๋ ์ด ์ ๋ ฌ์ ์์ ์ ๋ ฌ์ ์ํ๋ฉฐ,
ko.wikipedia.org
JavaScript ์ฝ๋ฉํ ์คํธ 131๊ฐ ์์ & CS์ง์์ผ๋ก ๋๋ด๊ธฐ | ํจ์คํธ์บ ํผ์ค
25์๊ฐ ๋๋น ๊ณผ์ / '์ฝํ ๋ ์ ๋' ์ ํ๋ฒ ๊ฐ์ฌ๋๊ป ํต์ฌ๋ง ๋ฐฐ์ฐ๊ณ ๋น ๋ฅด๊ฒ ํฉ๊ฒฉํ์ธ์.
fastcampus.co.kr
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 5. JavaScript ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (1) | 2024.10.29 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 3. ์ฝ์ ์ ๋ ฌ (1) | 2024.10.28 |
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 2. ๋ฒ๋ธ ์ ๋ ฌ (0) | 2024.10.28 |
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 1. ์ ํ์ ๋ ฌ (0) | 2024.10.28 |