한 걸음씩 기록하며
[백준] 11050번 이항 계수 1 본문
⛏ 문제 파악
- 이항계수(Binomial Coefficient)
- 이항계수는 조합론에서 등장하는 개념으로 주어진 크기 집합에서 원하는 개수만큼 순서없이 뽑는 조합의 가짓수를 일컫는다.
- 2를 상징하는 ‘이항’이라는 말이 붙은 이유는 하나의 아이템에 대해서는 ‘뽑거나, 안 뽑거나’ 두 가지의 선택만이 있기 때문이다.
- 이항계수를 찾아보니.. 이항계수의 성질을 이용하여 동적 계획법?을 만드는 알고리즘도 있던데 너무 어려워서 그건 포기했다..
- 그냥 여기에서는 조합론의 기본인 팩토리얼로 이항계수 구하는 법 정도만 하겠다..
👉🏻 답안
N, K = map(int, input().split(' '))
def factorial(n): # 팩토리얼 구하는 함수
ans = 1
for i in range(2, n+1):
ans *= i
return ans
def bino_coef_factorial(n, r): # 이항계수 구하는 함수
return print(factorial(n) // factorial(r) // factorial(n-r))
bino_coef_factorial(N, K)
📑 간단한 설명
- n!을 구하는 함수를 직접 만들고
- n! // r! // n-r!을 통해서 위의 이항계수 공식을 만들었다.
- 물론 이렇게 하지 않고... 역시 우리의 파이썬이 math에서 팩토리얼을 지원한다.
from math import factorial
n, k = map(int, input().split())
b = factorial(n) // (factorial(k) * factorial(n - k))
print(b)
'알고리즘 & 코딩테스트' 카테고리의 다른 글
[백준] 11047번 동전 0 (0) | 2022.03.19 |
---|---|
[백준] 1541번 잃어버린 괄호 (0) | 2022.03.19 |
[백준] 1934번 최소공배수 (0) | 2022.03.18 |
[백준] 2609번 최대공약수와 최소공배수 (0) | 2022.03.18 |
[백준] 1037번 약수 (0) | 2022.03.18 |
Comments