오늘이라도

[7일차][프로그래머스, 120840번, Lv. 0] 구슬을 나누는 경우의 수 본문

개발 공부/코딩테스트

[7일차][프로그래머스, 120840번, Lv. 0] 구슬을 나누는 경우의 수

upcake_ 2022. 12. 23. 15:45
반응형

문제

내 풀이

import java.math.BigInteger;

class Solution {
    public BigInteger solution(int balls, int share) {
        return factorial(balls).divide(factorial(balls-share).multiply(factorial(share)));
    }
    
    public BigInteger factorial(int number) {
        BigInteger result = BigInteger.valueOf(1);
        for(int i = 1; i <= number; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }
        
        return result;
    }
}

채점 결과

피드백

int로하다가 안돼서 long으로, 또 안돼서 BigInteger로 바꿨다

 

 

https://copro505.tistory.com/entry/%EA%B5%AC%EC%8A%AC%EC%9D%84-%EB%82%98%EB%88%84%EB%8A%94-%EA%B2%BD%EC%9A%B0%EC%9D%98-%EC%88%98

 

구슬을 나누는 경우의 수→순수(?) 조합 계산★★

다른 사람의 풀이 class Solution { public long solution(int balls, int share) { share = Math.min(balls - share, share); if (share == 0) return 1; long result = solution(balls - 1, share - 1); result *= balls; result /= share; return result; } } ▶

copro505.tistory.com

BigInteger를 사용하지않고 재귀함수를 이용한 풀이

반응형