dp[층수][둘사이 거리]의 경우의 수로 계산.
거리가 그대로일 경우 둘(아래아래, 대각,대각)
거리가 줄경우 하나(대각아래)
거리가 늘경우 하나(아래대각)
거리가 0인경우는 그냥 배제
import sys
input = sys.stdin.readline
n = int(input())
dp = [[0]*(n+1) for _ in range(n+1)]
dp[2][1] = 2
for i in range(3,n+1):
for j in range(1,i):
dp[i][j] = (dp[i-1][j]*2 + dp[i-1][j-1] + dp[i-1][j+1])%10007
sum_n = 0
for i in range(1,n):
sum_n += dp[n][i]
print(sum_n%10007)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 15900 나무탈출 (0) | 2021.09.02 |
---|---|
[백준][Python] 14391 종이조각 : 비트마스킹 전수조사 (0) | 2021.09.01 |
[백준][Python] 2941 크로아티아 알파뱃 (0) | 2021.09.01 |
[백준][Python] 1541 잃어버린 괄호 (0) | 2021.08.31 |
[백준][Python] 1389 케빈 베이컨의 6단계 법칙 (0) | 2021.08.31 |