본문 바로가기

코딩/백준

[백준][Silver II] 이항 계수 2 - 11051번 파이썬 문제풀이

728x90
반응형

 

 

문제 링크

성능 요약

메모리: 33240 KB, 시간: 40 ms

분류

조합론, 다이나믹 프로그래밍, 수학

 

문제 설명

입력

출력

예제 입력 1 복사

5 2

예제 출력 1 복사

10



 

import sys
input = sys.stdin.readline
import math

N,M = map(int,input().strip().split())

def binomial_coefficient(n, k):
    return math.factorial(n) // (math.factorial(k) * math.factorial(n - k))

print(binomial_coefficient(N, M) % 10007)

 

다른 풀이

import math
print(math.comb(*map(int,input().split()))%10007)

 

이항계수라는 것은 결국 확률과 통계에서의 조합(combination)를 구하라는 뜻이고 이는 위에 보이는 공식과 같이 구할 수 있다.

팩토리얼(!)가 계산하기 어려울 수 있지만 파이썬에서의 math 라이브러리를 가져와서 math.factorial() 함수를 가져와서 쉽게 풀 수 있었다.

 

다 풀고 나서 보니 math.comb() 라는 함수가 아예 조합을 계산해주는 함수라는 것을 다른 사람 코드를 통해 알 수 있었다.

단 2줄로 풀리다니....

 

 

반응형