๋ฐ์ํ
Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ์ฝํ
- SWEA
- ์นด์นด์ค
- ์๊ณ ๋ฆฌ์ฆ
- kakao
- ๋ฐฑ์ค
- ์๋ฃ๊ตฌ์กฐ
- ์คํ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํํ
- SSAFY
- ์ฝ๋ฉํ ์คํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- SW์ญ๋ํ ์คํธ
- BFS
- DFS
- ์ผ์ฑ
- ์์ ํ์
- ๊ทธ๋ํ
- ํ์ด์ฌ
- algorithm
- Blind
- ์ธํผ
- boj
- javascript
- Python
- Backjoon
- DP
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- sort
Archives
- Today
- Total
๋ง์ํ
๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ(Dynamic Programming) ๋ณธ๋ฌธ
๋ฐ์ํ


๐ ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ(Dynamic Programming)์ด๋
- ํ๋์ ๋ฌธ์ ๋ ๋จ ํ ๋ฒ๋ง ํธ๋ ๋ฐฉ๋ฒ! ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ (์ดํ DP)
- ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ถํ ์ ๋ณต๊ณผ ์ ์ฌํ๋ค๊ณ ์๊ฐํ ์ ์์ง๋ง, ๋ถํ ์ ๋ณต์ ๊ฒฝ์ฐ ํ๋ฒ ํ์๋ ๋ฌธ์ ๋ฅผ ๋ค์ ํธ๋ ๋นํจ์จ์ ์ธ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. (์ผ๋ถ ๊ฒฝ์ฐ ์ ์ธ (๋ณํฉ์ ๋ ฌ))
- ๋ถํ ์ ๋ณต๊ณผ DP์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ํ์ ์ธ ์์๋ก๋ ํผ๋ณด๋์น ์์ด์ด ์๋ค.
- ํผ๋ณด๋์น ์์ด: ๋ฐ๋ก ์๊ณผ ์์ ๋ ์นธ์ ์ซ์์ ํฉ์ ๊ตฌํด์ ๋ํ๋ด๋ ์์ด
- 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
- ๋ถํ ์ ๋ณต์ ์ด์ฉํ๋ค๋ฉด ์ด๋ฏธ ๊ตฌํ ์ซ์๋ค์ ๋ค์ ๊ณ์ฐํ๋ ๋จ์ ์ด ์๋ค.

- ์์ ์ฌ์ง์ ๋ณด๋ฉด 13์ ๊ตฌํ๋๊ฒ 2๋ฒ, 12 3๋ฒ, 11 3๋ฒ ๊ณ์ฐํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
- ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ฌ์ฉํ๋ค๋ ์ !
- ์ด๋ฏธ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ ๋ฆฌ์คํธ์ ์ ์ฅ์ ํด๋๊ณ ํ์ํ ๋ ๊บผ๋ด์ ์ฌ์ฉํ๋ค.
๐ ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ(Dynamic Programming) ๊ตฌํ
# ํผ๋ณด: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
# ํผ๋ณด๋ฅผ ๋ถํ ์ ๋ณต์ผ๋ก ๊ตฌํ๋ ๋ฐฉ๋ฒ
import time
def fibo1(x):
if x == 1:
return 1
if x == 2:
return 1
return fibo1(x - 2) + fibo1(x - 1)
start = time.time()
print(fibo1(37))
end = time.time()
print(f'๋ถํ ์ ๋ณต: {end - start}')
# ํผ๋ณด๋ฅผ DP๋ก ๊ตฌํ๋ ๋ฐฉ๋ฒ
dp = [0] * 100
def fibo2(x):
if x == 1:
return 1
if x == 2:
return 1
if dp[x] != 0:
return dp[x]
dp[x] = fibo2(x - 2) + fibo2(x - 1)
return dp[x]
start = time.time()
print(fibo2(37))
end = time.time()
print(f'๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ: {end - start}')
'''
24157817
๋ถํ ์ ๋ณต: 6.408001184463501
24157817
๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ: 0.0
'''
๐ ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ(Dynamic Programming) ํน์ง
- ๋ณดํต ์๊ณ ๋ฆฌ์ฆ์ ํ ๋ ํ์ด๊ฐ ๋๋ฌด ๊ฐ๋จํ์ง๋ง ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ฉด ์ด ์น๊ตฌ๋ฅผ ๋ ์ฌ๋ฆฌ์.
๋ฐ์ํ
'CS > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์๋ผํ ์คํ ๋ค์ค์ ์ฒด(Sieve Of Eratosthenes) (0) | 2020.10.03 |
|---|---|
| ๋ค์ต์คํธ๋ผ(dijkstra) (0) | 2020.10.02 |
| ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ(kruskal) (0) | 2020.09.30 |
| ์๋ก์ ์งํฉ(Disjoint-set) (0) | 2020.09.29 |
| ๊น์ด ์ฐ์ ํ์(Depth First Search, DFS) (0) | 2020.09.28 |