출처 : 반크_독도의 날 포스터
참고풀이1] 반복문 사용한 경우의 수
def Combination(n,r):
#nCr = n!/(r!(n-r)!)
numerator=1 #분자부분
for i in range(n,n-r,-1):
numerator*=i
denominator=1 #분모부분
for i in range(r,0,-1):
denominator*=i
#결과
result=numerator//denominator
return result
#main 부분
N=int(input("전 체 개수를 입력하시오 : "))
R=int(input("선택할 개수를 입력하시오 : "))
print(f"\n{N}C{R} = {Combination(N, R)}")
참고풀이1 결과]
참고풀이2] 재귀호출을 사용한 경우의 수
def Combination(n,r):
#nCr = n!/(r!(n-r)!)
if r==0 or n==r:
return 1
else:
return Combination(n-1, r) + Combination(n-1, r-1)
#main 부분
N=int(input("전 체 개수를 입력하시오 : "))
R=int(input("선택할 개수를 입력하시오 : "))
print("\n%dC%d = %d"%(N,R,Combination(10, 3)))
참고풀이2 결과]
참고풀이3] 최적화한 경우의 수
def Combination(n,r):
#nCr = n!/(r!(n-r)!)
#nC(r-1) = n!/((r-1)!(n-r+1)!)
#nCr = n!/((r-1)!(n-r+1)!)*((n-r+1)/r)
if r==n:
return 1
elif r==1:
return n;
else:
return Combination(n, r-1) * (n-r+1)//r
#main 부분
N=int(input("전 체 개수를 입력하시오 : "))
R=int(input("선택할 개수를 입력하시오 : "))
print("\n{0}C{1} = {2}".format(N,R,Combination(N, R)))
참고풀이3 결과]
대한민국의 아름다운 영토, 독도의 여름
'프로그램 > Python 1000제' 카테고리의 다른 글
Python 37제] S대 9주차 과제(일의 자리와 십의 자리 바뀐 수로 짝수의 합 구하기) (0) | 2022.03.24 |
---|---|
Python 36제] S대 9주차 과제(김밥 계산하기) (0) | 2022.03.24 |
Python 34제] 2021년 한국정보올림피아드 1차대회 중등부 2교시 1번:꿀따기 (0) | 2021.12.09 |
Python 33제] 구구단 결과값 표 만들기 (0) | 2021.11.16 |
Python 32제] A,B 두 수 사이의 합을 구하시오. (0) | 2021.11.16 |
댓글