728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120840
머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.
2. 제한사항
3. Python code
조합(combination) 문제다.
친절하게 힌트까지 제공 됨!
def fac(num):
a = 1
for i in range(1, num+1):
a *= i
return a
def solution(balls, share):
answer = 0
n = fac(balls)
m = fac(share)
nm = fac(balls-share)
answer = n / (nm * m)
return answer
직접 factorial 함수를 구현해서 한 방법이다.
재귀함수를 써도 되지만 재귀함수 사용하면 runtime error가 떠서 for문 사용했다.
from math import factorial as fac
def solution(balls, share):
n = fac(balls)
m = fac(share)
nm = fac(balls-share)
answer = n/(nm*m)
return answer
math 라이브러리에 있는 factorial 사용해 푼 코드
import math
def solution(balls, share):
return math.comb(balls, share)
파이썬 답게 math 라이브러리에 있는 combination을 이용한 코드