// main.cpp
//
// Created by gogowonji on 2022/03/06.
//
#include <iostream>
using namespace std;
int main() {
// insert code here...
// 백준 1010번
// 입력
int test;
int n,m;
cin >> test;
// long long (8bytes) : int형 연산에서 벗어나는 범위일 때 사용
long long num = 1;
for(int i = 0; i < test; i++){
num = 1;
cin >> n >> m;
if(n > (m/2)){
n = m-n;
}
for(int j = m; j > m-n; j--){
num *= j;
}
for(int j = n; j > 0; j--){
num /= j;
}
// 출력
cout << num << endl;
}
return 0;
}
조합을 이용한 쉬운 문제였다.
시간 초과를 방지하기 위해서 if구문을 추가해주고
mCn = m(m-1)...(m-n) / n(n-1)...1
or
mC(m-n) = m(m-1)...(m-n) / (m-n)(m-n-1)...1
for문으로 계산해주고 출력해주면 끝!
오랜만에 문제를 풀었더니 감이 다 사라진 느낌이다.
열심히 다시 공부해야지...