끝자리 수를 기준으로,
2차원 배열을 통해 해결하면 쉽게 해결된다.

# dp설계
dp = [
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0] for _ in range(1001)
]
# 초기설정
dp[1] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
# dp 채워넣기
for i in range(2, 1001):
for j in range(1, 10):
dp[i][j] = dp[i][j-1] + dp[i-1][j]
# n 입력
n = int(input())
# 출력
print(sum(dp[n]) % 10007)
'Algorithm(BOJ, Python) > Dynamic Programing' 카테고리의 다른 글
| [백준_14501] 퇴사 python (0) | 2022.07.08 |
|---|---|
| [백준_2193] 이친수 python (0) | 2022.07.07 |
| [백준_9625] BABBA python (0) | 2022.07.06 |
| [백준_1932] 정수 삼각형 python (0) | 2022.07.06 |
| [백준_1003] 피보나치함수 python (0) | 2022.07.05 |