개발 공부/코딩테스트
[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로 바꿨다
구슬을 나누는 경우의 수→순수(?) 조합 계산★★
다른 사람의 풀이 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를 사용하지않고 재귀함수를 이용한 풀이
반응형