문제(출처: 프로그래머스)

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

 

▶ 내가 푼 방식

function factorial(n) {
  return n ? n * factorial(n - 1) : 1;
}

function solution(balls, share) {
    return Math.round(factorial(balls) / (factorial(balls-share) * factorial(share)))
}

 

 다른 유저가 푼 방식

// 유저 1

function solution(balls, share) {
    var result = 1;
    while(share > 0){
        result = result * balls / share;
        balls = balls - 1;
        share = share - 1;
    }
    return Math.round(result);
}

 

 배운 것들

     -  오류가 나서 혹시나 해서 Math.round() 를 했는데 정답이였다 어떤 예가 있을까??

             부동소수점이 나올수도 있어서 일듯하다.

     -  n!/ (n-m)! m! -> n 개에서 서로 다른 m 개를 고르는 경우의 수 구하는 공식

+ Recent posts