haechandev
알고리즘

[백준 - 2225] 합분해

숫자 하나를 더 넣는 경우와 합을 하나 줄이는 경우로 점화식을 만든 조합 DP 풀이.

2022년 9월 2일

합이 n이 되도록 k개의 0 이상의 정수를 고르는 경우의 수를 구한다. 마지막 수가 0인 경우와 0보다 큰 경우로 나누면 점화식이 단순해진다.

dp[n][k] = dp[n][k - 1] + dp[n - 1][k]
  • 마지막 수가 0이면 n을 k - 1개로 만드는 경우다.
  • 마지막 수가 1 이상이면 마지막 수에서 1을 빼 n - 1을 k개로 만드는 경우와 대응된다.

0을 만드는 방법과 하나의 수로 만드는 방법을 1로 초기화한 뒤 표를 채웠다.

문제: 2225 합분해 · 코드: GitHub에서 보기