728x90
조합 $_{n}C_{r}$을 구하는 문제
더보기
문제
자연수 N과 정수 K가 주어졌을 때 이항 계수 \left(\begin{array}{c}N\\ K\end{array}\right)를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 K가 주어진다. $($1 ≤ N ≤ 10, 0 ≤ K ≤ N$)$
출력
\left(\begin{array}{c}N\\ K\end{array}\right)를 출력한다.
조합 \begin{align}\left(\begin{array}{c}N\\ K\end{array}\right) = \frac{N!}{K!(N - K)!} \end{align}
팩토리얼 \begin{align}N! =1*2*3* \cdots * N\end{align}
다 같은 내용이지만 3가지 방식으로 코드를 작성해봤습니다.
math.comb$()$ 조합의 수 구하는 함수
import sys
input = sys.stdin.readline
from math import comb
N, K = map(int, input().split())
print(comb(N,K))
math.factorial$()$ 팩토리얼을 구하는 함수
import sys
input = sys.stdin.readline
from math import factorial
N, K = map(int, input().split())
print(factorial(N) // (factorial(K) * factorial(N - K))) # 조합의 경우의 수 구하기
팩토리얼을 구하는 함수 정의
import sys
input = sys.stdin.readline
def f(n):
r = 1
for i in range(1, n + 1):
r *= i
return r
N, K = map(int, input().split())
print(f(N) // (f(K) * f(N - K)))
더보기
\begin{align}\left(\begin{array}{c}5\\ 2\end{array}\right) = \frac{5!}{2! * 3!} = 10 \end{align}
예제 입력 1
5 2
예제 출력 1
10
'IT > Python' 카테고리의 다른 글
[백준] 1018번 체스판 다시 칠하기 [Python] (0) | 2023.07.31 |
---|---|
[백준] 17219번 비밀번호 찾기 [Python] - 딕셔너리 (0) | 2023.07.31 |
[백준] 15652번 N과 M[4] [Python] - 중복조합 (0) | 2023.07.28 |
[백준] 15651번 N과 M[3] [Python] - 중복순열 (0) | 2023.07.28 |