๋ฐฑ์ค 10844๋ฒ
import sys
input = sys.stdin.readline
n = int(input())
li = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + \ #1์ ์๋ฆฌ์๋ ๊ฐ๊ฐ ๊ณ๋จ์๊ฐ ์๊ธฐ์์ ๋ฐ์์์
[[0 for _ in range(10)] for _ in range(n-1)]
for i in range(1, n):
for j in range(10):
if j == 0:
li[i][j] = li[i-1][1] #0๋ก 1์ ์๋ฆฌ ์๋ ๊ณ๋จ์๊ฐ 1๋ก ๋๋๋ ์ ๋ฐ์ ์์
elif j == 9:
li[i][j] = li[i-1][8] #9๋ก 1์ ์๋ฆฌ ์๋ ๊ณ๋จ์๊ฐ 8๋ก ๋๋๋ ์ ๋ฐ์ ์์
else:
#๊ทธ ์ธ ์๋ ๊ณ๋จ์๊ฐ 2๊ฐ์ฉ ์กด์ฌ
li[i][j] = li[i-1][j-1] + li[i-1][j+1]
print(sum(li[n-1]) % 1000000000)
์ฒ์์ ํ์๋๋ฐ ๋๋ฌด ์ด์ง๋ฝ๊ณ ๋๋ฝ๊ฒ ํ์ด์..ใ
ใ
ใ
ใ
ใ
ใ
๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ(๋ฐ๋ก ํ์ธํด๋ณด๋ ์๊ฐ์ด๊ณผ๋ ๋ฐ์ ใ
ใ
ใ
) ๋ฐ์ํ์๋ค.. ์ด๊ฑธ DP๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋ ๋ชจ๋ฅด๊ฒ ๋ค.
๊ฒฐ๊ตญ ๊ตฌ๊ธ์ ๋์์ ๋ฐ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์ต๋๋ค..ใ
๋ด๊ฐ ์ด ์ฝ๋์ ์ฅ์ ์ ์
๋ ฅ์ผ๋ก ๋ค์ด์จ ์๋ฆฟ์์ ๊ณ๋จ์๊ฐ ์ด๋ค๊ฒ์ด ์๋์ง ํ์ธ ๊ฐ๋ฅํ๋ค๋๊ฑฐ?
์๋์ ์ฝ๋๊ฐ ์ ๊ฐ ์ฒ์์ ์์ฑํ ์ฝ๋์
๋๋ค. ํ์ธํด๋ณด๋..ํ n์ด 20์ผ ๋๊น์ง๋ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค ใ
ใ
ใ
import sys
input = sys.stdin.readline
n = int(input())
li = [str(i) for i in range(10)]
result = li
if n == 1:
print(9)
else:
start = 1
for c in range(n-1):
end = len(result)
re = []
for i in range(start, end):
check = int(result[i][c])
if (check - 1) == -1:
re.append(result[i] + str(check + 1))
elif (check + 1) == 10:
re.append(result[i] + str(check - 1))
else:
re.append(result[i] + str(check + 1))
re.append(result[i] + str(check - 1))
start = end
result += re
print(len(re) % 1000000000)