본문 바로가기
IT기초/알고리즘

[2407번] 조합(Combination) 코딩

by 김수호님 2019. 1. 2.
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