문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
이 문제에서 factorial 계산 시 매우 큰 수가 연산될 수 있으므로 Number, parseInt 등을 쓰면 오답 처리된다.
정답
function factorial(num) {
if (num === 0) return 1;
else return num * factorial(num - 1);
}
function solution(balls, share) {
return Math.round(factorial(balls) / factorial(balls - share) / factorial(share));
}
function solution(balls, share) {
let result = 1;
while (share > 0) {
result = (result * balls) / share;
balls = balls - 1;
share = share - 1;
}
return Math.round(result);
}