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줄로 풀리다니....
반응형
'코딩 > 백준' 카테고리의 다른 글
[백준][Bronze I] 팰린드롬수 - 1259번 파이썬 문제풀이 (1) | 2024.11.20 |
---|---|
[백준][Bronze III] 수학은 체육과목 입니다 - 15894번 파이썬 문제풀이 (0) | 2024.11.18 |
[백준][Bronze I] 이항 계수 1 - 11050번 파이썬 문제풀이 (1) | 2024.11.14 |
[백준][Bronze II] 숫자 - 10093번 파이썬 문제풀이 (0) | 2024.11.12 |
[백준] [Bronze I] 소인수분해 - 11653번 파이썬 문제풀이 (1) | 2024.11.10 |