๐ŸŒ  ๋ฌธ์ œ

๋จธ์“ฑ์ด๋Š” ๊ตฌ์Šฌ์„ ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋‚˜๋ˆ„์–ด์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์Šฌ์€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ตฌ์Šฌ์˜ ๊ฐœ์ˆ˜ 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์ž…๋‹ˆ๋‹ค.

์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ ์ค‘ m๊ฐœ๋ฅผ ๋ฝ‘๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ณต์‹


๐Ÿงž ํ’€์ด

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);
}

+ Recent posts