๋์ ๊ณํ๋ฒ ( DP; Dynamic Programming) ?
- ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ํ, ํด๋น ๋ถ๋ถ ๋ฌธ์ ์ ํด๋ฅผ ํ์ฉํด ๋ณด๋ค ํฐ ํฌ๊ธฐ์ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ์ํฅ์ ์ ๊ทผ๋ฒ
- Memoization ๊ธฐ๋ฒ : ํ๋ก๊ทธ๋จ ์คํ ์, ์ด์ ์ ๊ณ์ฐํ ๊ฐ์ ์ ์ฅํ์ฌ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํจ -> ์คํ์๋ ํฅ์
- ๋ฌธ์ ๋ฅผ ์๊ฒ ์ชผ๊ฐค ๋, ๋ถ๋ถ ๋ฌธ์ ๋ ์ค๋ณต๋์ด ์ฌํ์ฉ๋จ -> ํผ๋ณด๋์น ์์ด
๋ถํ ์ ๋ณต (Divide and Conquer ) ?
- ๋ฌธ์ ๋ฅผ ๋๋ ์ ์์ ๋๊น์ง ๋๋์ด์, ๊ฐ๊ฐ ํ๋ฉด์ ๋ค์ ํฉ๋ณํ์ฌ ๋ฌธ์ ์ ๋ต์ ์ป๋ ์๊ณ ๋ฆฌ์ฆ
- ํํฅ์ ์ ๊ทผ๋ฒ (์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ทํจ์๋ก ๊ตฌํ)
- ๋ฌธ์ ๋ฅผ ์๊ฒ ์กฐ๊ฐค ๋, ๋ถ๋ถ ๋ฌธ์ ๋ ์๋ก ์ค๋ณต๋์ง ์์
๊ณตํต์ ๊ณผ ์ฐจ์ด์
- ๊ณตํต์ : ๋ฌธ์ ๋ฅผ ์๊ฒ ์ชผ๊ฐ์, ๊ฐ์ฅ ์์ ๋จ์๋ก ๋ถํ
- ์ฐจ์ด์
- ๋์ ๊ณํ๋ฒ
- ๋ถ๋ถ ๋ฌธ์ ๋ ์ค๋ณต๋์ด, ์์ ๋ฌธ์ ํด๊ฒฐ ์ ์ฌํ์ฉ๋จ
- Memoization ๊ธฐ๋ฒ ์ฌ์ฉ(๋ถ๋ถ ๋ฌธ์ ์ ํด๋ต์ ์ ์ฅํด์ ์ฌํ์ฉํ๋ ์ต์ ํ ๊ธฐ๋ฒ)
- ๋ถํ ์ ๋ณต
- ๋ถ๋ถ ๋ฌธ์ ๋ ์๋ก ์ค๋ณต๋์ง ์์
- Memoization ๊ธฐ๋ฒ ์ฌ์ฉ ์ํจ
- ๋์ ๊ณํ๋ฒ
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ๋ณํฉ ์ ๋ ฌ(merge sort) (0) | 2024.02.06 |
---|---|
[Algorithm] ํต ์ ๋ ฌ(Quick Sort) (0) | 2024.02.05 |
[Algorithm] ์ฌ๊ท ์ฉ๋ฒ (recursive call, ์ฌ๊ท ํธ์ถ) (0) | 2024.01.30 |
[Algorithm] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ (Sort Algorithm) (1) | 2024.01.30 |
[Data Structure] ํ (Heap)์ ๊ตฌํ - ํ๊ณผ ๋ฐฐ์ด (1) | 2024.01.30 |