처음에 봤을 때 배열로 각 자릿수를 뽑을 수 있을 것 같다는 생각이 들어 answer +=n[i]; 와 같은 구문을 적고 그에 맞춰서 코드를 작성하였다.
function solution(n)
{
var answer = 0;
for (let i = 0; i<n.length; i++){
answer += n[i];
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
return answer;
}
하지만 코드를 테스트 했을 때 계속 오류가 났다. console.log로 확인해보니, for문이 돌아가지 않는 문제가 있었다.
그래서 length에 관한 설명을 찾아보니, length는 문자열에서만 통한다는 것을 알아냈다.
그렇게 숫자열인 n을 toString()을 통해 문자열로 변환하니 for문이 돌아가기 시작했다.
허나 거기서 끝은 아니었다. 왜냐하면 toString을 이용해 문자열로 변환해 값을 더하기가 어려워졌기에 문자열을 안에서 다시 int로 바꿔야 했기에 Math.floor를 통해 다시 int로 바꾸는 과정을 거쳤다.
[결과]
function solution(n)
{
var answer = 0;
n = n.toString()
for (let i = 0; i<n.length; i++){
answer += Math.floor(n[i]);
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
return answer;
}