def factorial(n):
if n==0: return 0
answer =1
for i in range(1,n+1):
answer*=i
return answer
def solution(balls, share):
return factorial(balls)/(factorial(balls-share)*factorial(share))
balls와 share가 같다면 factorial(0)이 호출되는데, 현재 코드에서는 0을 반환하므로 분모가 0이 되어 계산 오류(ZeroDivisionError)가 발생할 수 있습니다/ 연산자가 실수를 반환한다는 점을 간과
.0으로 끝나는 실수가 되어 채점에서 틀릴 수 있음조합 문제는 math.comb를 먼저 떠올리고, 직접 짤 때는 정수 나눗셈(//)을 잊지 말자
math 모듈 활용math 라이브러리의 comb 함수 : 조합을 계산해준다
import math
def solution(balls, share):
return math.comb(balls, share)
math.factorial 함수도 존재한다!def factorial(n):
if n <= 1: return 1 # 0!과 1!은 모두 1
answer = 1
for i in range(1, n + 1):
answer *= i
return answer
def solution(balls, share):
# 정수 나눗셈(//)을 사용하여 결과 타입을 int로 유지
return factorial(balls) // (factorial(balls - share) * factorial(share))