백준 11050번 - 이항 계수 1(Python3)
코드
n, k = map(int, input().split())
# 팩토리얼 구현 함수
def _factorial(r):
if r== 0 or r == 1:
return 1
return r * _factorial(r-1)
# 이항계수 관련 변수들
nf = _factorial(n)
nk = _factorial(k)
nr = _factorial(n-k)
# 이항 계수 구하는 공식
print(int(nf / (nk * nr)))
문제 해설
이항 계수의 성질을 알아야한다.
위의 성질을 참고했을 때, 이항 계수를 구하라는 뜻은 조합 nCk를 구하라는 뜻과 동일하다.
또한 문제에서 k의 범위가 0 <= k <= n으로 정해졌으므로 맨 위의 조건만을 생각하여 문제를 풀었다.
이 때, r == 0을 조건문으로 제어해주지 않으면 런타임에러가 발생하므로 주의해야 한다.
댓글남기기