반응형
이번 문제는 \(_nC_r\) 조합을 구하라는 것입니다.
조합을 구하는 알고리즘은 수학을 알고 있다면 손쉽게 할 수 있습니다. 단지 문제는 숫자가 커지기 때문에 BigInteger 자료형을 제공하는 파이썬이나 자바를 이용하시는 것이 편합니다.
https://www.acmicpc.net/problem/2407
저는 파이썬을 이용했습니다.
\[ _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
'Programming > BOJ' 카테고리의 다른 글
[C/C++] 백준 #2417 정수 제곱근(수학) (0) | 2023.04.30 |
---|---|
[C/C++] 백준 #2410 2의 멱수의 합(동적 계획법) (0) | 2023.04.29 |
[C/C++] 백준 #2367 파티(포드-폴커슨 알고리즘) (0) | 2023.04.28 |
[C/C++] 백준 #2357 최솟값과 최댓값(세그먼트 트리) (0) | 2023.04.27 |
[C/C++] 백준 #2352 반도체 설계(가장 긴 증가하는 부분수열) (0) | 2023.04.27 |
댓글