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은 백의 자리수가 된다.