링크 : www.acmicpc.net/problem/11051
파스칼의 삼각형을 활용하여 풀었다.
단번에 떠올리진 못했고, 다른 사람의 풀이책을 참고하여 해결원리가 파스칼의 삼각형임을 깨달았다.
#include<iostream>
#define MAX 1001
#define MODULAR 10007
using namespace std;
int ans[MAX][MAX];
void init(int n) {
for (int i = 1; i <= n; i++) {
ans[i][0] = 1;
ans[i][i] = 1;
}
}
int main() {
ios::sync_with_stdio(NULL);
cin.tie(NULL);
int n = 0, k = 0;
cin >> n >> k;
init(n);
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= n; j++) {
ans[i][j] = (ans[i - 1][j - 1] + ans[i - 1][j]) % MODULAR;
}
}
cout << ans[n][k] % MODULAR << "\n";
return 0;
}
'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글
#9375번 패션왕 신해빈 (C++) (0) | 2020.11.09 |
---|---|
#9012번 괄호 (C++) (0) | 2020.11.05 |
#3036번 링 (C++) (0) | 2020.11.03 |
#2609번 최대공약수와 최대공배수 (C++) (0) | 2020.11.02 |
#1946번 신입 사원 (C++) (0) | 2020.11.01 |