์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- heapq
- react
- ํ๋ก ํธ์๋
- error
- ๋ชจ๊ฐ์ฝ
- fe
- ๋๋ฆผ์ฝ๋ฉ
- ํฌ๋กค๋ง
- Til
- ์ฝ๋ฉํ ์คํธ
- ์ฝ๋ฉ
- KDT
- HTML
- javascript
- ํ์ด์ฌ
- ๊ทธ๋ฆฌ๋
- ํ๋ก์ ํธ
- ์ฝ๋ฉ์ ํ
- Python
- ํ ์ดํ๋ก์ ํธ
- ๋ ธ๋ง๋์ฝ๋
- CSS
- ๋ฐฑ์ค
- mongodb
- ํ๋ก๊ทธ๋๋จธ์ค
- node.js
- ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ๋ฐ
- ๊ตญ๋น์ง์
- JS
- Today
- Total
๐ฑ โ ๐ณ
[Baekjoon] 25421. ์กฐ๊ฑด์ ๋ง๋ ์ ์์ ๊ฐ์ - python ๋ณธ๋ฌธ
https://www.acmicpc.net/problem/25421
25421๋ฒ: ์กฐ๊ฑด์ ๋ง๋ ์ ์์ ๊ฐ์
2๊ฐ์ ์๋ฆฟ์๋ฅผ ๊ฐ๊ณ ์ฒซ ๋ฒ์งธ ์๋ฆฌ์ ์ซ์์ ๋ ๋ฒ์งธ ์๋ฆฌ์ ์ซ์์ ์ฐจ์ด๊ฐ 2๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ์ ์ 11, 12, 13, 21, 22, 23, 24, 31, 32, ... , 97, 98, 99๊ฐ A์ ํด๋น๋๋ค. ๋ฐ๋ผ์ ์ ๋ต์ 39์ด๋ค.
www.acmicpc.net
๋ฌธ์ ์ ๋ณด
๋ฌธ์ ์ ํ | ๋์ด๋ | ๊ฑธ๋ฆฐ ์๊ฐ | ํด๊ฒฐ ์ ๋ฌด |
DP | ์ค๋ฒ1 | 1h | O |
์ค๊ณ ๋ฐฉ๋ฒ
dp๋ก ์ ๊ทผ
dp[n][i] = dp[n-1][i-2] + dp[n-1][i-1] + dp[n-1][i] + dp[n-1][i+1] + dp[n-1][i+2]
dp๊ฐ์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์ ๋ํด๊ฐ
n๋ฒ์งธ ์๋ฆฌ ์์ฐ์ = ์ด์ ๋ฒ์งธ ์๋ฆฌ ์์ฐ์๋ณด๋ค 2์ด์ ์ฐจ์ด๋์ง ์๋๋ค
๊ฐ ์๋ฆฌ ์๋ 0๋ณด๋ค ํฌ๊ณ 10๋ณด๋ค ์์
์ฝ๋
n = int(input())
dp = [[0] * 10 for _ in range(n)]
for i in range(1, 10):
dp[0][i] = 1
for i in range(1, n):
for j in range(1, 10):
t = 0
for k in range(j - 2, j + 3):
if 0 < k < 10:
t += dp[i - 1][k]
t %= 987654321
dp[i][j] = t
print(dp) # [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 3, 4, 5, 5, 5, 5, 5, 4, 3]]
ans = 0
for i in range(10):
ans += dp[n - 1][i]
ans %= 987654321
print(ans)
์๊ฐ ๋ณต์ก๋
O(N)
์ด๋ ค์ ๋ ์
์ ํ์์ ๊ธ๋ฐฉ ์๊ฐํ๋๋ฐ ๊ตฌํ์ด ์๊ฐ๋ณด๋ค ์ค๋ ๊ฑธ๋ ธ์
์ฐธ๊ณ ์๋ฃ
https://velog.io/@zjvlzld/์๊ณ ๋ฆฌ์ฆ-๋ฐฑ์ค-25421-java-์๋ฐ
'Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 17392. ์ฐ์ธํ ๋ฐฉํ - python (0) | 2023.09.29 |
---|---|
[Baekjoon] 2404. ๋จ์ ๋ถ์๋ก ๋ถํ - python (0) | 2023.09.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ - python (0) | 2023.09.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์์ฌ์ - python (0) | 2023.09.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํฐ ์ ๋ง๋ค๊ธฐ - python (0) | 2023.09.15 |