Computer science/알고리즘

[백준, node.js] 2004번 "조합 0의 개수" 문제 해결방법

남양주개발자 2022. 2. 13. 15:28
728x90
반응형

[백준, node.js] 2004번 "조합 0의 개수" 문제 해결방법

문제

예제 입력 & 출력

입력

출력

소스코드

조합 nCm의 끝자리 0의 개수를 출력하는 문제 2의 승수(a1 - b1, c1) 와 5의 승수(a2 - b2 - c2) 가 구해졌으면 겹치는(짝지을 수 있는) 개수를 구하면 되므로, 2와 5의 승수 중 최솟값을 출력

const fs = require('fs');
let [n, m] = fs.readFileSync('./dev/stdin').toString().split(' ');
n = Number(n)
m = Number(m)

function getPowerN(num, power) {
  let count = 0;

  while(num >= power) {
    count += parseInt(num / power);
    num /= power;
  }

  return count;
}

const two = getPowerN(n, 2) - getPowerN(n - m, 2) - getPowerN(m, 2);
const five = getPowerN(n, 5) - getPowerN(n - m, 5) - getPowerN(m, 5);

console.log(Math.min(two, five));

기본적인 개념을 알고 있으면 쉽게 풀 수 있으나 그렇지 않을 경우 접근하기 어려운 문제

728x90
반응형
그리드형