반응형

문제 출처 :


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



알고리즘 분석 :


문제 해결에 필요한 사항

1. nCk를 하는 법


문제는 nCk를 구해달라이니 n! / ((n-k)!*k!)을 해주면 된다.


이때 줄이면 결국 n부터 n-k까지 곱해주고 k!을 나누어주면 된다.


파이썬을 이용하여 정수 범위에 영향을 받지 않고 문제를 푼다면 쉽게 해결이 가능하다.


아래 n, k = [int(x) for x in input().split()]는 list comprehension과 split를 이용하여 n과 k에 각각 값을 대입해주는 과정이다.













소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def nCk(n,k):
    ans = 1
    for i in range(n+1)[n:n-k:-1]: # n*n-1*...*n-k
        ans *= i
 
    for i in range(k+1)[1:]: # k!
        ans //= i
 
    return ans
n, k = [int(x) for x in input().split()]
 
print(nCk(n,k)) # n! / ((n-k)!*k!)
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형