구슬을 나누는 경우의 수, Javascript

cptkuk91·2023년 1월 31일
1

Algorithm

목록 보기
126/161

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120840?language=javascript

코드

function solution(balls, share) {
	return factorial(balls) / (factorial(balls - share) * factorial(share));
}

function factorial(number){
	let basic = BigInt(1);
    
    for(let i = 2; i <= number; i++){
    	basic *= BigInt(i);
    }
    return basic;
}

풀이

우선 Factorial을 사용할까? 라는 고민을 했었고, 문제 아래 Hint가 있어서 확신이 들었다.
문제에서 BigInt를 사용하지 않을경우 에러가 발생한다. 그 이유는 Javascript가 2^53 - 1까지만 다룰 수 있기 때문이다. 따라서 BigInt를 사용해야하고, factorial 함수를 작성할 수 있다면 쉽게 해결할 수 있는 문제다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글