문제

머쓱이는 구슬을 친구들에게 나눠주려 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share가 매개변수로 주어질 때, balls 개의 구슬 중 share 개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.

답안

def facto(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result

def solution(balls, share):
    return facto(balls) / (facto(balls - share) * facto(share))

[그림 1] 조합 공식

이 문제는 조합의 경우의 수를 구하는 것입니다. 조합의 경우의 수를 구하는 공식은 위와 같습니다.

힌트에서 주어진 대로 팩토리얼 함수를 만들고 공식을 구현했습니다.

이 문제를 풀지 못해 다른 자료를 참고했습니다.

 

더보기

 https://www.youtube.com/watch?v=e2gfefOCtp4&list=PLjWmbjpSjAMClE_gKVNfGtzxLIhk8FNA5&index=68

 

'Coding Test' 카테고리의 다른 글

[Java] toCharArray()  (0) 2024.07.01
[java] 중복된 문자 제거  (0) 2024.07.01
[python] 진료 순서 정하기  (0) 2023.03.07
[python] 외계행성의 나이  (0) 2023.03.07
[python] 짝수 홀수 개수  (0) 2023.03.06

+ Recent posts