https://www.acmicpc.net/problem/11050
조합의 경우의 수를 구하는 코드를 만들어주면 된다. n을 k번 1씩 줄이면서 곱해준 값과 k를 k번 1씩 줄이면서 곱해준 값을 나눠주면 된다.
정답코드
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
if (k > n - k) {
k = n - k; // nCk == nC(n-k), 계산량 줄이기 위해 k를 더 작은 값으로 설정
}
int a = 1, b = 1;
for (int i = 0; i < k; i++)
{
a *= (n - i);
b *= (k - i);
}
cout << a / b << endl;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][C++]24416번. 알고리즘 수업- 피보나치 수 (2) | 2024.10.14 |
---|---|
[백준][C++]1010번. 다리 놓기 (1) | 2024.10.10 |
[백준][C++]10872번. 팩토리얼 (1) | 2024.10.08 |
[백준][C++]24723번. 녹색거탑 (1) | 2024.10.08 |
[백준][C++]15439번. 베라의 패 (3) | 2024.10.08 |