python 팩토리얼 구현

도리·2025년 1월 20일

from) programmers lv.0 구슬을 나누는 경우의 수

쉬운 문제인데 글 쓰는 이유..

"range에서 자꾸 실수해서"

  • 서로 다른 n개 중 m개를 뽑는 경우의 수를 구하는 문제이다.

    (원래문제)

balls, share가 입력.

def solution(balls, share):
	
	num = 0
	def fac(n): #팩토리얼 함수만들기
    		for i in range(**1,n+1**):
            	num *= i 
			return num
	
	answer = fac(balls) /(fac(shares)*fac(balls-shares))
	return answer

이런식으로 함수를 구현했다.

range(n) 으로 구현했었는데 n으로 하게되면 0부터 시작이됨. 그래서 (1,n+1)이 되어야 함.

근데 사실 라이브러리 불러왔으면 되는 거였따. ...

from math import factorial as fac 
  • 이를 호출하면 def fac(n)제거하고 똑같이 코드 써도 괜찮다.
import math 

def solution (balls, share):
	return math.comb(balls,share)

math.comb(balls,share) -> n개중 r개 선택 (조합)

profile
인공지능응용학과 졸업예정..

0개의 댓글