코드

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)))

문제 해설

이항 계수의 성질을 알아야한다.

bin

위의 성질을 참고했을 때, 이항 계수를 구하라는 뜻은 조합 nCk를 구하라는 뜻과 동일하다.

또한 문제에서 k의 범위가 0 <= k <= n으로 정해졌으므로 맨 위의 조건만을 생각하여 문제를 풀었다.

이 때, r == 0을 조건문으로 제어해주지 않으면 런타임에러가 발생하므로 주의해야 한다.

댓글남기기