๐ ๋ฌธ์
๋จธ์ฑ์ด๋ ๊ตฌ์ฌ์ ์น๊ตฌ๋ค์๊ฒ ๋๋์ด์ฃผ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ์ฌ์ ๋ชจ๋ ๋ค๋ฅด๊ฒ ์๊ฒผ์ต๋๋ค. ๋จธ์ฑ์ด๊ฐ ๊ฐ๊ณ ์๋ ๊ตฌ์ฌ์ ๊ฐ์ balls์ ์น๊ตฌ๋ค์๊ฒ ๋๋์ด ์ค ๊ตฌ์ฌ ๊ฐ์ share์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, balls๊ฐ์ ๊ตฌ์ฌ ์ค share๊ฐ์ ๊ตฌ์ฌ์ ๊ณ ๋ฅด๋ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ์ฌํญ
- 1 ≤ balls ≤ 30
- 1 ≤ share ≤ 30
- ๊ตฌ์ฌ์ ๊ณ ๋ฅด๋ ์์๋ ๊ณ ๋ คํ์ง ์์ต๋๋ค.
- share ≤ balls
๐ ์ ์ถ๋ ฅ ์
balls share result
3 2 3
5 3 10
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ์๋ก ๋ค๋ฅธ ๊ตฌ์ฌ 3๊ฐ ์ค 2๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ์ ์๋ 3์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ์๋ก ๋ค๋ฅธ ๊ตฌ์ฌ 5๊ฐ ์ค 3๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ์ ์๋ 10์ ๋๋ค.
๐ง ํ์ด
function solution(balls, share) {
// ๋์ด ๊ฐ์ ๊ฒฝ์ฐ๋ 1 ๋ฆฌํด
if (balls == share ) {
return 1;
}
// ๋ถ์์ ๊ฒฝ์ฐ, n!๊ณผ m!์ด ์ฝ๋ถ๋๋ ๊ฒ์ ๊ณ ๋ ค
let deno = 1;
for (let i = balls; i > share; i --) {
deno = deno * i;
}
// ๋ถ๋ชจ์ ๊ฒฝ์ฐ, (n-m)!์ ๊ณ์ฐ
let nume = 1;
for (let i = 1; i <= balls - share; i ++) {
nume = nume * i;
}
// ๋์ ๋๋ ๋, ๊ฒฝ์ฐ์ ์๋ ์ ์๋ก ์ถ๋ ฅ๋์ด์ผ ํจ
return Math.round(deno / nume);
}
'๐งฉ Algorithm > ๐ง JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] 2์ฐจ์์ผ๋ก ๋ง๋ค๊ธฐ (0) | 2023.04.06 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ ์์น ๊ตฌํ๊ธฐ (0) | 2023.04.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ ๋ฐ์ ๋ณด (0) | 2023.04.05 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์ค๋ถํธ (1) (0) | 2023.04.05 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ๋ฏธ ๊ตฐ๋จ (0) | 2023.04.05 |