analogcoding

algorithm 연습8 본문

Study JS for me/Algorithm

algorithm 연습8

be well 2019. 5. 4. 16:57

문제. sumDigits 함수는 input으로 숫자를 받고 받은 숫자의 각 자릿수의 합을 리턴하고

        음수를 받는 경우 맨 앞 자릿수는 음수로 계산해서 리턴.

 

Ex)  input : 1148  => output : 14   (1+1+4+8)

       input : -316  => output : 4      (-3+1+6)

 

 

해결방안.

 

1. input 숫자를 양수, 음수에 따라 조건을 나눔. 

2. 각 자릿수에 접근하기 위해 문자열로 변경.

3. 한 자릿수 양수,음수의 경우 바로 input을 리턴.

4. 양수의 경우 각 자릿수의 값을 변수 sum에 반복적으로 더해서 누적 값을 리턴.

5. 음수의 경우 맨 앞 자릿수에 -1을 곱해 변수로 설정, 그 수에 나머지 값들을 반복적으로 더해서 누적 값을 리턴.

 

input의 각 자릿수의 접근을 위해 문자로 변경, sum 과 negative 변수 생성.

function sumDigit(num) {
let numStr = num.toString();
let sum = 0;
let negative = 0;

input이 음수일 경우의 조건을 설정.

변수 negative 에 첫 자릿수 * -1 을 설정하고 나머지 값들을 반복적으로 누적해서 negative 를 리턴.

if(num < 0){
  negative = (Number(numStr[1]) * -1);
for(let i = 2; i < numStr.length; i++){
    negative += Number(numStr[i]) 
  }
  return negative;
}

input이 양수일 경우 sum에 반복적으로 자릿 값들을 누적해서 sum을 리턴.

else {
  for(let i = 0; i < numStr.length; i++){
   sum =  sum += Number(numStr[i])
  }
}
return sum;
}

 

결과확인

 

'Study JS for me > Algorithm' 카테고리의 다른 글

algorithm 연습10  (0) 2019.05.06
algorithm 연습9  (0) 2019.05.05
recursion 예제연습3  (0) 2019.05.04
recursion 예제연습2  (0) 2019.05.02
recursion 예제 연습  (0) 2019.05.02
Comments