๐Ÿ”ฎ[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ตฌ์Šฌ์„ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜

Chobbyยท2022๋…„ 10์›” 13์ผ
3

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
98/345

๐Ÿงก๋ฌธ์ œ ์„ค๋ช…

๋จธ์“ฑ์ด๋Š” ๊ตฌ์Šฌ์„ ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋‚˜๋ˆ„์–ด์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์Šฌ์€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ตฌ์Šฌ์˜ ๊ฐœ์ˆ˜ balls์™€ ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋‚˜๋ˆ„์–ด ์ค„ ๊ตฌ์Šฌ ๊ฐœ์ˆ˜ share์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, balls๊ฐœ์˜ ๊ตฌ์Šฌ ์ค‘ share๊ฐœ์˜ ๊ตฌ์Šฌ์„ ๊ณ ๋ฅด๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


๐Ÿ’›์ œํ•œ์‚ฌํ•ญ

  • 1 โ‰ค balls โ‰ค 30
  • 1 โ‰ค share โ‰ค 30
  • ๊ตฌ์Šฌ์„ ๊ณ ๋ฅด๋Š” ์ˆœ์„œ๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • share โ‰ค balls

๐Ÿ’š์ž…์ถœ๋ ฅ ์˜ˆ

ballsshareresult
323
5310

๐Ÿ’™์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์Šฌ 3๊ฐœ ์ค‘ 2๊ฐœ๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 3์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์Šฌ 5๊ฐœ ์ค‘ 3๊ฐœ๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 10์ž…๋‹ˆ๋‹ค.

๐Ÿ’œHint

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

โ€ป ๊ณต์ง€ - 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
}
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€