문제링크 : https://www.acmicpc.net/problem/16395
#include <bits/stdc++.h>
using namespace std;
int n, k;
int dp[31][31];
int main()
{
cin >> n >> k;;
for (int i = 1; i <=n; i++)
{
dp[i][1] = 1; dp[i][i] = 1; //각 행의 맨처음과 맨끝은 1
for (int j = 2; j < i; j++)
{
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]; //파스칼 규칙
}
}
cout << dp[n][k];
}
각 행의 맨처음과 맨끝이 1인 것을 생각하고, 파스칼의 삼각형 경우의 수를 직접 써서 규칙을 확인한다.
'백준 > 실버' 카테고리의 다른 글
[백준 11055번] 가장 큰 증가 부분 수열 (C++) (0) | 2023.02.06 |
---|---|
[백준 9625번] BABBA (C++) (0) | 2023.02.06 |
[백준 2491번] 수열 (C++) (0) | 2023.02.06 |
[백준 15990번] 1, 2, 3 더하기 5 (C++) (0) | 2023.02.06 |
[백준 17086번] 아기 상어 2 (C++) (0) | 2023.02.06 |