Algorism

두 자연수를 입력받아 각 자리의 빈도수 구하기

자라나라나무나무나 2022. 7. 26. 23:27
두 자연수 M, N을 입력받아, M부터 N까지 각자리수의 빈도수를 합하는 프로그램의 제작하시오.
이 숫자들의 자릿수 별 빈도수를 계산하여, 0부터 9까지의 빈도수 값을 반환한다.
function answer(s, e) {
  let result = [];

  // 0. 각 자릿수 별 index => 0
  for (let i = 0; i < 10; i++) {
    result[i] = 0;
  }

  // 1. s <= n <= e
  let num;
  for (let i = s; i <= e; i++) {
    num = i;
    // 2. n => % / 
    while (num != 0) { // 129 9 2 1 
      result[num % 10]++;
      num /= 10;
      num = parseInt(num);
    }
  }

  return result;
}

let input = [

  [129, 137],

  [1412, 1918],

  [4159, 9182],
];

for (let i = 0; i < input.length; i++) {
  process.stdout.write(`#${i + 1} `);
  console.log(answer(input[i][0], input[i][1]));
}

예를 들어 129라는 숫자의 자릿 수 값을 구해보자.

129 % 10 = 9 

여기서 9는 일의 자리수가 된다.

129 / 10 = 12.9 

parseInt로 변수로 전환한다.

12 % 10 = 2

여기서 2는 십의 자리수가 된다.

12 / 10 = 1

여기서 1은 백의 자리수가 된다.