https://www.acmicpc.net/problem/2225
2225번: 합분해
첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
1. 풀이
dp[i][j] : 정수 j개를 더해서 i가 되는 경우의 수
※ 이처럼 DP문제는 규칙을 찾는게 가장 중요하다.
2. 코드
from sys import *
# INPUT
N, K = map(int, stdin.readline().rstrip().split())
# DP
dp = [[0] * 201 for _ in range(201)]
for i in range(201):
dp[i][1] = 1
for j in range(2, 201):
dp[1][j] = j
for i in range(2, N + 1):
for j in range(2, K + 1):
dp[i][j] = (dp[i][j - 1] + dp[i - 1][j]) % 1000000000
print(dp[N][K])
'Coding Test' 카테고리의 다른 글
[Dijkstra] 1916 : 최소비용 구하기 (0) | 2021.07.16 |
---|---|
[String, Hash] 4358 : 생태학 (0) | 2021.07.15 |
[DP, LIS] 2565 - 전기줄 (0) | 2021.07.14 |
[Implementation, BFS] 13460: 구슬 탈출 2 (0) | 2021.07.12 |
[Math] 피보나치 (0) | 2021.07.09 |