๐Ÿ’ป Programming/Algorithm

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

Jiwon() 2023. 8. 19. 22:48

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด
์‚ฌ์šฉ ์–ธ์–ด - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ JavaScript JS

1. ๊ตฌ์Šฌ์„ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜

1) โ“ ๋ฌธ์ œ ์„ค๋ช…

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

 

2) ๐Ÿšซ ์ œํ•œ ์‚ฌํ•ญ

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

 

3) โœ… ์ž…์ถœ๋ ฅ ์˜ˆ

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

 

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

 

4) ๐Ÿ”Ž Hint

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

์–ด.. ๋‚˜ ์ด ๊ณต์‹ ํ™•ํ†ต์—์„œ ๋ดค๋˜ ๊ฒƒ ๊ฐ™์•„..!!

 

 


2. ์‚ฌ์šฉํ•œ ๋ฉ”์„œ๋“œ: for๋ฌธ

for๋ฌธ์„ ๊ฐ๊ฐ 3๊ฐœ ์ •์˜ํ•˜์—ฌ ๊ฐ ํŒฉํ† ๋ฆฌ์–ผ ๊ฐ’(n!, (n-m)!, m!)์„ ๊ณ„์‚ฐํ•ด์ฃผ์—ˆ๋‹ค.

 


3. ๋‹ต์•ˆ

1) ๋‚˜์˜ ํ’€์ด

function solution(balls, share) {
    let nf = 1; // ๋ถ„์ž
    let nminusmf = 1; // ๋ถ„๋ชจ ๊ณ„์‚ฐ๊ฐ’1
    let mf = 1; // ๋ถ„๋ชจ ๊ณ„์‚ฐ๊ฐ’2
    for (let i=balls; i>=1; i--) nf *= i;
    for (let j=(balls-share); j>=1; j--) nminusmf *= j;
    for (let k=share; k>=1; k--) mf *= k;

    return Math.round(nf/(nminusmf*mf))
}

 

2) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

const ํŒฉํ† ๋ฆฌ์–ผ = (num) => num === 0 ? 1 : num * ํŒฉํ† ๋ฆฌ์–ผ(num - 1)

function solution(balls, share) {
  return Math.round(ํŒฉํ† ๋ฆฌ์–ผ(balls) / ํŒฉํ† ๋ฆฌ์–ผ(balls - share) / ํŒฉํ† ๋ฆฌ์–ผ(share))
}
  • ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•ด์ฃผ๊ณ , solution ํ•จ์ˆ˜์—์„œ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ์„œ ํ•ด๊ฒฐํ•œ ํ’€์ด ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜๋ฅผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ ์ •์˜ํ•œ ์ ์ด ์ข‹์•˜๋‹ค.