Question
๋ฐฑ์ค 10872๋ฒ : ์ฌ๊ท
0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ ์ N์ด ์ฃผ์ด์ง๋ค. ์ด๋, N!์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ N(0 ≤ N ≤ 12)์ด ์ฃผ์ด์ง๋ค.
์ธ๋ ฅ
์ฒซ์งธ ์ค์ N!์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ์์
10
์ถ๋ ฅ์์
3628800
My Code
const input = require('fs').readFileSync('dev/stdin').toString().trim();
let x = Number(input);
function factorial(n) {
return n <= 1? 1 : n * factorial(n-1);
}
console.log(factorial(x));
๋ง์์ต๋๋ค!!
HOW? (ํ์ด๋ฐฉ๋ฒ)
for๋ฌธ์ ์ด์ฉํด์ ํฉํ ๋ฆฌ์ผ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง
๋ฐฑ์ค ๋ฌธ์ ๋จ๊ณ์ ๋์์๋ ๊ฑฐ์ ๊ฐ์ด '์ฌ๊ท'๋ฅผ ์ด์ฉํด์ ํ์๋ค.
์ฃผ์ํด์ผ ํ ์ ์ 0! = 1์ด๋ผ๋ ์ฌ์ค์ด๋ค.
๋ฐ๋ผ์ ๊ฐ์ด 1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ 1์ ๋ฆฌํดํ๋ ์กฐ๊ฑด๋ฌธ์ ์ถ๊ฐํ๋ค.
์ฌ๊ท์ ๊ฐ๋ ์ ๊ฐ๋จํ๊ฒ ์ดํดํด๋ณด์.
์๋ ์นธ ์์นด๋ฐ๋ฏธ๋ฅผ ํตํด ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ์ ํ์ธํด๋ณผ ์ ์๋ค.
์นธ์์นด๋ฐ๋ฏธ์์ ์ค๋ช ํ๋ ๊ฑฐ์ ๊ฐ์ด ๋ฌ์์ ์ธํ์ ์๊ฐํ๋ฉด ์ฌ๊ท์ ๋ํ ์ดํด๊ฐ ๋์ฑ ์ฌ์์ง๋ค!
์๋ฅผ ๋ค์ด 3! ์ ํ์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
3! = 3 x 2 x 1 = 3 x 2! ์ ๊ฐ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
์์ ๋ณด๋ค ํ ์ซ์ ์๋ ์๋ ํฉํ ๋ฆฌ์ผ์ ๋ถ๋ฌ๋ธ๋ค.
๊ณ์ํด์ ๋ถ๋ฌ๋ด๋ค ๋ณด๋ฉด ๊ฒฐ๊ตญ 1! ์ ๋๋ฌํ๊ณ
3! = 3 x 2 x 1์ด ๋๋ค๋ ๊ฒฐ๋ก ์ด ๋์จ๋ค.
์ฌ๊ท๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 1931 ๋ฒ : ํ์์ค ๋ฐฐ์ (feat.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.05.24 |
---|---|
[JS] ๋ฐฑ์ค 10870๋ฒ : ํผ๋ณด๋์น ์ 5 (0) | 2022.05.16 |
[JS] ๋ฐฑ์ค 2108๋ฒ : ํต๊ณํ (0) | 2022.05.13 |
[JS] ๋ฐฑ์ค 2750๋ฒ : ์ ์ ๋ ฌํ๊ธฐ (0) | 2022.05.09 |
[JS] ๋ฐฑ์ค 2292๋ฒ : ๋ฒ์ง (0) | 2022.05.06 |