반응형
문제 출처 :
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 |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[2150번] Strongly Connected Component (0) | 2017.07.21 |
---|---|
[2042번] 구간 합 구하기 (0) | 2017.07.18 |
[2622번] 삼각형만들기 (0) | 2017.07.18 |
[12015번] 가장 긴 증가하는 부분 수열 2 (0) | 2017.07.18 |
[1777번] 순열복원 (0) | 2017.07.18 |