조합론을 이용하여 다리를 놓을 수 있는 모든 경우의 수를 계산한다.
from math import factorial
T = int(input())
for i in range(T):
N, M = map(int, input().split())
print(factorial(M) // (factorial(N) * factorial(M-N)))
DP를 이용하여 문제를 해결한다.
dp = [0] * 31
dp[0] = 1
for i in range(1, 31):
dp[i] = i * dp[i-1] # dp를 이용해 팩토리얼 값을 저장
T = int(input())
for i in range(T):
N, M = map(int, input().split())
print(dp[M] // (dp[N] * dp[M-N]))