โถ ๋ฌธ์ :
https://www.acmicpc.net/problem/1676
โถ ์ฝ๋ :
let input = require('fs').readFileSync(`Computer Science/Alogrithms/๋ฐฑ์คJS/testCase.txt`).toString().split('\n');
function count5(num){
let count = 0;
while(num % 5 === 0){
num = parseInt(num / 5)
count += 1;
}
return count
}
const inputNum = parseInt(input[0]);
let answer = 0;
for(let i = 1; i <= inputNum; i++){
answer += count5(i);
}
console.log(answer);
โถ ๋ฌธ์ ํ์ด:
1. ๋จ์ํ factorial ํจ์๋ฅผ ๋ง๋ค๊ณ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํด์ 0์ ๊ฐ์๋ฅผ ์ธ๋ ๋ฌธ์ ๊ฐ ์๋์๋ค.
2. ์ต๋ input์ธ 500์ ๊ฒฝ์ฐ ๋๋ฒ๊น ์ ํด๋ณด์์๋ factorial์ ํตํด ๊ตฌํ ๊ฐ์ด Infinity์๋ค.
3. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๊ฐํด์ผํ๊ณ , ๊ฒฐ๊ณผ ๊ฐ์ 0์ ์์ฑํ๋ ๊ฒฝ์ฐ๋ 2์ 5๊ฐ ๊ณฑํด์ก์๋ 10์ด ๋์ค๋ ๊ฒฝ์ฐ์๋ค.
4. ํด๋น ๋ฒ์๋ด์๋ ์๋์ ์ผ๋ก 2์ ๋ฑ์ฅ์ด 5๋ณด๋ค ํจ์ฌ ๋น๋ฒํ๊ธฐ์ ๊ฒฐ๊ตญ ๊ฐ๊ฐ์ factorial ์ฐ์ฐ์์ ์ฐ์ฐ๋๋ ๊ฒฝ์ฐ์ ์ซ์ ๋ง๋ค 5๋ก ๋๋์ด์ง๋์ง ์ฒดํฌํ๊ณ ๋ช๋ฒ ๋๋์ด์ง๋์ง count๋ณ์์ ์ ์ฅํ์ฌ ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๋ค.
5. ๋ฐ๋ผ์ count5() ํจ์๋ฅผ ์ ์ธํด ์ธ์๋ก ๋ค์ด์จ ์ซ์๊ฐ 5๋ก ๋ช ๋ฒ ๋๋์ด์ฃผ๋์ง ์ธ๋๋ก ํ์๊ณ , factorial์ฐ์ฐ์ ์ํํ๋ ๊ฒ์ฒ๋ผ 1 ๋ถํฐ ์์ํ์ฌ inputNum ๊น์ง 5๋ก ์ด ๋ช๋ฒ ๋๋์ด ์ง ์ ์๋์ง answer์ ์ ์ฅํ์๋ค.
6. '๊ฒฐ๊ณผ์ ์ผ๋ก factorial ์ฐ์ฐ์ ๋ฑ์ฅํ๋ ์ซ์๋ง๋ค 5๋ก ๋๋์ด์ง๋ ํ์๋ฅผ ๋ชจ๋ ํฉํ ๊ฐ = ๊ฒฐ๊ณผ์ 0์ ๊ฐ์' ๋ผ๋ ์๋ฏธ๊ฐ ๋๊ณ answer๋ฅผ ์ถ๋ ฅํด์ฃผ๋ฉด ๋์~
'๐ฏ CodingTest > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 2579๋ฒ ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2022.06.02 |
---|---|
[Baekjoon] 1764 ๋ฃ๋ณด์ก (0) | 2022.05.27 |
[Baekjoon] 1389๋ฒ ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2022.05.27 |
[BaekJoon] 1620 ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ (0) | 2022.04.15 |
[BaekJoon] 1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2022.04.15 |