728x90
반응형
문제
nCm을 출력한다.
코딩
n,k=list(map(int,input().split())) def factorial(n):#nCm에서 n,n-1,n-2,...로 m개 만큼 곱하도록 하는 함수 ret=1 for _ in range(n): ret=ret*n n=n-1 return ret def test(num,k): tmp=1 if num-k>k:#nCm에서 n-m이 n보다 큰지 작은지 확인 cnt=k else: cnt=num-k ret=factorial(cnt) for _ in range(cnt): tmp=tmp*num num=num-1 print(int(tmp//ret)) test(n,k)
n-m과 n의 크기를 비교하는 로직이 없으니까 굉장히 비효율적이었다. 수학을 프로그래밍에 녹이는게 쉽지는 않구나...
728x90
반응형
'IT기초 > 알고리즘' 카테고리의 다른 글
| [1005번] ACM Craft 코딩(성공) (1) | 2019.01.05 |
|---|---|
| [1463번]1로 만들기 코딩 (2) | 2019.01.05 |
| [1676번] N! 0의 개수 코딩 (0) | 2019.01.02 |
| [알고리즘]동적 계획법 (2) | 2018.12.20 |
| [알고리즘]분할 정복(Divide and Conquer) (0) | 2018.12.20 |