백준 1676 팩토리얼의 0의 개수 (수학)

bkboy·2022년 6월 14일
0

백준 초급

목록 보기
65/80

문제

풀이

let input = require('fs').readFileSync('/dev/stdin').toString().trim();
const sol = (input) => {
  let n = +input;
  let answer = 0;
  while (n >= 5) {
    answer += parseInt(n / 5);
    n = n / 5;
  }

  return answer;
};

console.log(sol(input));

  • 뒤에서 부터 0을 구하는 것은 5로 몇번 나눌 수 있냐 묻는 문제임.
  • 정석은 2와 5로(2*5 = 10이니까) 나눈 횟수 중 작은 값인데 5가 더 작을 수 밖에 없다.
const solution = n => {
  let answer = 0;

  for (let i = 5; i <= n; i *= 5) {
    answer += Math.floor(n / i);
  }

  return answer;
};

5의 배수만큼 커지도록 반복문을 돌려 5의 개수를 더한다.

profile
음악하는 개발자

0개의 댓글