본문 바로가기
Coding Test

[DP] 2225: 합분해

by kldaji 2021. 7. 15.

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