두 자연수 M,N을 입력 받아, M부터 N까지 각 자리수의 빈도수를 합하는 프로그램을 제작하시오. 예를 들어 129와 137이 주어졌을 때, 129,130,131,132,133,134,135,136,137 숫자가 나오고 이 숫자들의 자릿수 별 숫자 빈도수를 계산하여, 0부터 9까지의 빈도수 값을 반환한다. 입력값은 M,N은 10,000이하의 자연수 이며, 0부터 9까지의 자릿수 별 빈도수를 배열 형태로 반환한다.
[129,137]
[1412,1918]
[4159,9182]
#1 : [1,10,2,9,1,1,1,1,0,1]
#2 : [100,614,101,101,189,201,201,201,201,119]
#3 : [1503,1527,1503,1502,2343,2503,2512,2512,2505,1686]
function answer(s,e){
let result = [];
// 1. 0~9까지 자리수의 배열 초기화
for(let i = 0 ;i<10;i++){
result[i] = 0;
}
// 시작되는 숫자부터 '%,/'를 이용해 각 자리의 숫자를 num에 저장해 index별 0으로
// 초기화 한 result 배열의 값을 증가시킨다. ==> 빈도수 증가
let num;
for(let i = s; i<=e;i++){
num = i;
while(num != 0){
result[num%10]++;
num /= 10;
num = parseInt(num);
}
}
return result;
}
이 글을 정리하면서야 조금씩 이해가 간다. 배열에 접근하는 다양한 방법을 계속 공부해야겠다.