

문제를 살펴보면 다리를 지을 수 있는 경우의 수를 출력해야한다
서로 다리가 겹치면 안 된다는 문제의 조건(중요)가 있기 때문에
그냥 고를 수 있는 경우의 수를 각각 곱하면 되는 것이 아니다
두 번째로 주어진 동쪽에 있는 사이트의 개수에서 M개를 안 겹치게 뽑아서 N개의 다리를 순서대로 놓으면 된다
그러면 다리가 서로 겹치지 않고 다리를 지을 수 있다
그 말인 즉슨, mCn을 구하여 출력하는 것이 이 문제의 핵심이다
이전에 풀이하였던 factorial 함수를 활용하여 코드를 작성하였다
def factorial(num):
if num > 1:
return num * factorial(num - 1)
else:
return 1
T = int(input())
for _ in range(T):
n, m = map(int, input().split())
print(factorial(m) // (factorial(n) * factorial(m-n)))
'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 25192 인사성 밝은 곰곰이(실버 4) - Python (0) | 2024.12.08 |
|---|---|
| [Baekjoon]백준 1037 약수(브론즈 1) - Python (0) | 2024.12.07 |
| [Baekjoon]백준 11050 이항 계수 1(브론즈 1) - Python (0) | 2024.12.05 |
| [Baekjoon]백준 10872 팩토리얼(브론즈 3) - Python (0) | 2024.12.04 |
| [Baekjoon]백준 24511 queuestack(실버 3) - Python (0) | 2024.12.03 |