본문 바로가기
algorithm

[프로그래머스]구슬을 나누는 경우의수, java

by skysline 2023. 4. 8.
반응형

`구슬을 나누는 경우의 수`
문제 설명

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

입출력


code

class Solution {
    public int solution(int balls, int share) {
            if (balls <= share) {
            return 1;
            }else
            return (int)Math.round(fact(balls)/ (fact(balls-share)*fact(share)));
    }
    public double fact(int num){
        if (num == 1) return 1;
        return num * fact(num-1);
    }
}

힌트에 나와있는 공식대로 팩토리얼 을 사용했다.

Integer의 범위가 2147483647

제한사항인 30의 팩토리얼 2,652,528,598,121,910,586,363,084,800,000

Math클래스의 round 함수로 반올림 해주었다.

결과

반응형

댓글