문제 |
11050번: 이항 계수 1
첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))
www.acmicpc.net
코드 |
#include <iostream>
using namespace std;
int factorial(int num) {
if (num == 0) return 1;
return num * factorial(num - 1);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n, k;
cin >> n >> k;
cout << factorial(n) / factorial(k) / factorial(n - k);
return 0;
}
설명 |
이항계수(nCk)는 n! / k! / (n-k)! 으로 나타낼 수 있다.
이 문제에서는 n의 최댓값이 10에 불과하기 때문에 DP를 사용하지 않아도 빠르게 해결할 수 있다.
'PS > BOJ' 카테고리의 다른 글
[C++] BOJ (백준) 11651 : 좌표 정렬하기 2 (0) | 2023.03.05 |
---|---|
[C++] BOJ (백준) 11650 : 좌표 정렬하기 (0) | 2023.03.05 |
[C++] BOJ (백준) 10989 : 수 정렬하기 3 (0) | 2023.03.05 |
[C++] BOJ (백준) 10866 : 덱 (0) | 2023.03.05 |
[C++] BOJ (백준) 10845 : 큐 (0) | 2023.03.05 |