백준 2482 - 색상환 (Python)
Updated:
점화식을 i번쩨 을 j개 선택한 경우로 세웠습니다.
핵심 코드
if i != N:
dp[i][j] = dp[i - 1][j] + dp[i - 2][j - 1]
else:
dp[i][j] = dp[i - 1][j] + dp[i - 3][j - 1]
전체 코드
import sys
input = sys.stdin.readline
MOD = 1000000003
N = int(input())
K = int(input())
dp = [[0] * (K + 1) for _ in range(N + 1)]
for i in range(N + 1):
dp[i][0] = 1
dp[i][1] = i
for i in range(2, N + 1):
for j in range(2, K + 1):
if i != N:
dp[i][j] = dp[i - 1][j] + dp[i - 2][j - 1]
else:
dp[i][j] = dp[i - 1][j] + dp[i - 3][j - 1]
dp[i][j] %= MOD
print(dp[N][K])