๋จธ์ฑ์ด๋ ๊ตฌ์ฌ์ ์น๊ตฌ๋ค์๊ฒ ๋๋์ด์ฃผ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ์ฌ์ ๋ชจ๋ ๋ค๋ฅด๊ฒ ์๊ฒผ์ต๋๋ค. ๋จธ์ฑ์ด๊ฐ ๊ฐ๊ณ ์๋ ๊ตฌ์ฌ์ ๊ฐ์ balls
์ ์น๊ตฌ๋ค์๊ฒ ๋๋์ด ์ค ๊ตฌ์ฌ ๊ฐ์ share
์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, balls
๊ฐ์ ๊ตฌ์ฌ ์ค share
๊ฐ์ ๊ตฌ์ฌ์ ๊ณ ๋ฅด๋ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
balls
โค 30share
โค 30share
โค balls
balls | share | result |
---|---|---|
3 | 2 | 3 |
5 | 3 | 10 |
์ ์ถ๋ ฅ ์ #1
์ ์ถ๋ ฅ ์ #2
โป ๊ณต์ง - 2022๋ 10์ 11์ผ ์ ํ ์ฌํญ ๋ฐ ํ ์คํธ์ผ์ด์ค๊ฐ ์์ ๋์์ต๋๋ค.
10์ 11์ผ ์ด์ ๊น์ง์ ํ ์คํธ ์ผ์ด์ค๋ก๋ ์๋์ ๊ฐ์ ํ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํต๊ณผ๊ฐ ๊ฐ๋ฅํ์ง๋ง ์ดํ๋ถํฐ๋ ๋ถ๊ฐ๋ฅํด์ก๋ค.
function solution(balls, share) {
// ์๋ก ๋ค๋ฅธ n๊ฐ ์ค m๊ฐ๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ์ ์ ๊ณต์
return factorial(balls) / (factorial((balls-share)) * factorial(share))
}
// ํฉํ ๋ฆฌ์ผ์ ๊ตฌํ๋ ํจ์
function factorial(num) {
let returnFactorial = 1
for(let i = num; i >= 2; i-- ) {
returnFactorial*=i
}
return returnFactorial
}
์๋์ ๊ฐ์ด BigIntํ์์ ์ฌ์ฉํด์ผ balls, share์ ๋ฒ์๋ฅผ ๊ฐ๋นํ ์ ์์ด์ก๊ธฐ ๋๋ฌธ
function solution(balls, share) {
// ์๋ก ๋ค๋ฅธ n๊ฐ ์ค m๊ฐ๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ์ ์ ๊ณต์
return factorial(balls) / (factorial((balls-share)) * factorial(share))
}
// ํฉํ ๋ฆฌ์ผ์ ๊ตฌํ๋ ํจ์
function factorial(num) {
let returnFactorial = BigInt(1)
for(let i = num; i >= 2; i-- ) {
returnFactorial*=BigInt(i)
}
return returnFactorial
}