๋ฐ์ํ
๋ฌธ์
์ค๋ฅด๋ง ์๋ ์์ ์๋ฆฌ๊ฐ ์ค๋ฆ์ฐจ์์ ์ด๋ฃจ๋ ์๋ฅผ ๋งํ๋ค. ์ด๋, ์ธ์ ํ ์๊ฐ ๊ฐ์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์น๋ค.
์๋ฅผ ๋ค์ด, 2234์ 3678, 11119๋ ์ค๋ฅด๋ง ์์ด์ง๋ง, 2232, 3676, 91111์ ์ค๋ฅด๋ง ์๊ฐ ์๋๋ค.
์์ ๊ธธ์ด N์ด ์ฃผ์ด์ก์ ๋, ์ค๋ฅด๋ง ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ 0์ผ๋ก ์์ํ ์ ์๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N (1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ธธ์ด๊ฐ N์ธ ์ค๋ฅด๋ง ์์ ๊ฐ์๋ฅผ 10,007๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
MOD = 10007
INF = 1000
# dp[i][j] : ๊ธธ์ด๊ฐ i๊ณ j๋ก ๋๋๋ ์์ด์ ๊ฐฏ์
dp = [[1 for _ in range(10)] for _ in range(INF+2)]
for i in range(2, INF+2):
tmp = dp[i][9] = 1
for j in range(8, -1, -1):
tmp += dp[i-1][j]
tmp %= MOD
dp[i][j] = tmp
n = int(input())
print(dp[n+1][0])
๋ฐ์ํ
'๐ ํ์ด์ฌ ์์ด์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][Python] ๋ฐฑ์ค 11055๋ฒ: ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (Silver II) (2) | 2024.10.26 |
---|---|
[BOJ][Python] ๋ฐฑ์ค 1094๋ฒ: ๋ง๋๊ธฐ (Silver V) (0) | 2024.10.25 |
[BOJ][Python] ๋ฐฑ์ค 10815๋ฒ: ์ซ์ ์นด๋ (0) | 2024.10.22 |
[BOJ][Python] ๋ฐฑ์ค 9020๋ฒ: ๊ณจ๋๋ฐํ์ ์ถ์ธก (1) | 2024.10.22 |
[BOJ][Python] ๋ฐฑ์ค 2644๋ฒ: ์ด์๊ณ์ฐ (0) | 2024.10.17 |