본문 바로가기

Baekjoon

[Baekjoon]백준 11050 이항 계수 1(브론즈 1) - Python

문제설명

문제를 살펴보면 nCk를 구하는 문제이다

nCk는 가장 기초적인 방식으로는 n! / (k! * (n-k)! 방식이 있고 

때론 n을 k만큼 1씩 줄인값을 곱한 값을 분자, k!을 분모로 두는 방식이 존재한다

두번째 방법에 대해 예제를 통해 다시 말하자면 5 4 를 곱한 값이 분자, 2! 값이 분모가 된다 

 

필자는 가장 기초적인 방식으로 작성하였다

이전에 정의해두었던 factorial 함수를 활용하여 코드를 작성하여 출력하도록 하였다

def factorial(num):
    if num > 1:
        return num * factorial(num - 1)
    else:
        return 1
    
n, k = map(int, input().split())
print(factorial(n) // (factorial(k) * factorial(n-k)))