배열 문제풀이 - 숫자 빈도수

zzzzzang_gu·2023년 2월 20일
0

알고리즘

목록 보기
2/10

문제

두 자연수 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;
}

이 글을 정리하면서야 조금씩 이해가 간다. 배열에 접근하는 다양한 방법을 계속 공부해야겠다.

profile
프론트엔드 개발자가 되겠습니다🔥

0개의 댓글