머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.
balls share result 3 2 3 5 3 10 Hint
- 서로 다른 n개 중 m개를 뽑는 경우의 수 공식은 다음과 같습니다.
function solution(balls, share) {
let a = 1;
let b = 1;
let c = 1;
let d = balls-share;
for ( let i =1 ; i <=balls; i++) {
a = a*i; // balls에 대한 팩토리얼 계산
}
for (let i = 1; i <=share; i++) {
b= b*i; // share 에 대한 팩토리얼 계산
}
for (let i = 1; i <= d; i++) {
c= c*i; //balls-share에 대한 팩토리얼 계산
}
return Math.round(a/(b*c)) // 자바스크립트는 특정수는 소수자리까지 표현된 경우가 있다. 이 때문에 소수점 반올림이 필요하다.
}
console.log(29*0.1)// 2.9000000000000004
console.log(14*0.1)//1.4000000000000001
const 팩토리얼 = (num) => num === 0 ? 1 : num * 팩토리얼(num - 1)
function solution(balls, share) {
return Math.round(팩토리얼(balls) / 팩토리얼(balls - share) / 팩토리얼(share))
}