최대 1 분 소요

Intro

image

image

문제해결 및 소스코드

  • 단순한 dp문제로, 몇가지 예시만 나열해보면 특징이 보이는 문제였다.

image

  • dp[i][j] : i를 j개의 정수로 만드는 경우의 수

  • dp[i][j] = dp[i-1][j] + dp[i][j-1] 이 된다.

  • 나올 수 있는 경우의수가 매우 크므로, 10억으로 나눈 값을 저장하고 출력한다.

#include <iostream>
#define MOD 1000000000

using namespace std;

int dp[201][201];

int main()
{
	int n, k;
	cin >> n >> k;

	for (int i = 1; i <= k;i++)
	{
		dp[1][i] = i;
	}

	for (int i = 2; i <= n;i++)
	{
		for (int j = 2;j <= k;j++)
		{
			dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) % MOD;
		}
	}

	cout << dp[n][k] % MOD;
}

댓글남기기