[프로그래머스] 자릿수 더하기

lisoh·2022년 3월 11일
0
post-thumbnail

문제

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항

N의 범위 : 100,000,000 이하의 자연수

풀이 과정

//100,000,000은 9자리수

function solution(n) //213
{  
   
   let answer = 0;
   while(n > 9){
    answer += n % 10 
    n = Math.floor(n/10) 
}
return answer + n;

    
}
풀이 2

function solution(n)
{  
   //n은 최대 9자리수까지 있을 수 있다.
   //n의 자리수를 구하는 함수
   
   let answer = 0;
   const num = n.toString();

   for(let i = 0; i < num.length; i++){  
     answer += parseInt(num[i]);  
   }   
    
   return answer;

}
자릿수 더하기 삽질1
눈물의 x꼬쇼 

// 이거 이렇게 풀어보셨으면 중복되는 코드 합치는 작업하면 됐어쓸텐데~!!

function solution(n)
{  
   n >= 1;
   n <= 100,000,000;
    
   const hundredmillion = 
   Math.floor(n/100,000,000); //억
    
   const tenmillion = 
   Math.floor((n-(hundredmillion*100,000,000))/10,000,000); //천만
    
   const million = 
   Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000))/1,000,000); //백만
    
   const hundredthousand = 
   Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
               -(million*1,000,000))/100,000); //십만
    
   const tenthousand = 
   Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
               -(million*1,000,000)-(hundredthousand*100,000))/10,000); //만
    
   const thousand = 
   Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
               -(million*1,000,000)-(hundredthousand*100,000)
               -(tenthousand*10,000))/1000); //천
    
   const hundred = 
   Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
               -(million*1,000,000)-(hundredthousand*100,000)
               -(tenthousand*10,000)-(thousand*1,000))/100); 
   
                              
   const ten = 
   Math.floor((n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
               -(million*1,000,000)-(hundredthousand*100,000)
               -(tenthousand*10,000)-(thousand*1,000)-(hundred*100))/10);     
    
   const one = 
               n-(hundredmillion*100,000,000)-(tenmillion*10,000,000)
               -(million*1,000,000)-(hundredthousand*100,000)
               -(tenthousand*10,000)-(thousand*1,000)-(hundred*100)-(ten*10);
   
   const answer = hundredmillion + tenmillion + million + hundredthousand +
                + tenthousand + thousand + hundred + ten + one;
    
   return answer;
}
profile
프론트엔드 개발자를 꿈꾸는 개발초보 호랑이

0개의 댓글