본문 바로가기
Programming/BOJ

[Python] 백준 #2407 조합(수학)

by 작은별하나 2023. 4. 29.
반응형

이번 문제는 \(_nC_r\) 조합을 구하라는 것입니다.

 

 

조합을 구하는 알고리즘은 수학을 알고 있다면 손쉽게 할 수 있습니다.  단지 문제는 숫자가 커지기 때문에 BigInteger 자료형을 제공하는 파이썬이나 자바를 이용하시는 것이 편합니다.

 

https://www.acmicpc.net/problem/2407

 

2407번: 조합

n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n)

www.acmicpc.net

 

저는 파이썬을 이용했습니다.

 

\[ _nC_r = \frac{n!}{(n-r)! r!} \]

 

이것을 그대로 구현하였습니다.

 

제가 작성한 소스입니다.

"""
//    baekjoon #2407
//        - by Aubrey Choi
//        - created at 2019-06-27
"""
def comb(n, r):
    c = 1
    r = min(r, n-r)
    for k in range(1, r+1):
        c *= n-k+1
        c //= k
    return c

a, b = map(int, input().split())
print(comb(a, b))
728x90

댓글