반응형
<코드>
#include<iostream>
#include<algorithm>
using namespace std;
int dp[30][30];
int T, N, M, ans;
int main()
{
cin >> T;
dp[0][0] = 1;
dp[1][0] = 1;
dp[1][1] = 1;
for (int i = 2; i < 30; i++)
for (int j = 0; j <= i; j++)
{
if (j == 0 || j == i) dp[i][j] = 1;
else dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
while (T--)
{
cin >> N >> M;
cout << dp[M][N] << endl;
}
}
풀이 방법
조합의 공식에 따라서 팩토리얼을 구한 뒤 계산하는 방법은 숫자가 기하급수적으로 커지므로..(13!만 되도 62억) dp로 30x30 배열을 생성한 뒤 점화식을 이용하여 dp값들을 채워 나간 뒤 N, M값을 입력받아 dp[M][N]값을 출력하였다.
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[C/C++] 백준 3273번 - 두 수의 합 (0) | 2021.01.07 |
---|---|
[C/C++] 백준 1004번 - 어린 왕자 (0) | 2021.01.06 |
[C/C++] 백준 13305번 - 주유소 (그리디) (0) | 2021.01.04 |
[C/C++] 백준 9184번 - 신나는 함수 실행 (DP) (0) | 2021.01.03 |
[C/C++] 백준 1107번 - 리모컨 (0) | 2020.12.29 |