문제풀이 Feedback/Javascript

알고리즘 문제 1. 숫자의 모든 자릿수의 합

문제의 조건은
1. 숫자의 모든 자릿수의 합을 구해야합니다
2. 숫자가 음수라면 가장 앞의 숫자는 음수로 취급되어야 합니다

  처음 딱 봤을때의 느낌은 음? 엄청 쉬울것 같은데 였다.

하지만 천만에 문제를 시작하자마자 음수의 취급에 대해서 난관에 부딪혔다. 하지만 일단 아는 지식으로 

1. 먼저 숫자는 인덱스로 조회가 불가능하므로 문자열로 바꾸어서 반복문을 써야겠구나 라는 생각을 먼저했다


2. 문자열로 바꾼이후에는 -의 취급은 어떻게 되는가 였다 이또한 문자열로 취급되어 0번째 인덱스가 음수일경우 숫자인 문자열이 아니라        "-" 가왔다.


3. 이후에는 간단했다 양수일 경우에는 -의 취급을 신경쓸 필요가 없으므로 그냥 +만 하면 합이 나왔다

따라서 이문제의 답은

function sumDigits(num) {
  let sum = 0;
  let stringNumArr = num.toString().split('');

  for (let i = 0; i < stringNumArr.length; i++) {
    if (stringNumArr[0] === '-' && i === 1) {
      sum = -Number(stringNumArr[1]);
    } else {
      sum = sum + Number(stringNumArr[i]);
    }
  }
  return sum;
}

// 문자열로 만드는법 String( ?? ) , ??.toString()

   마지막에 문자열로 바꾸었던 값을 다시 넘버타입으로 바꾸어 주어야한다.