function solution(n)
{
let answer = 0;
let m = String(n);
// 왜 i가 0 이상일 때의 식은 실행되지 않는가..?
// (let i = 0; i <= m.length; i++) -> 실행 안 됨, 문자열과 상관이 있는가?
for (let i = 0; i < m.length; i++) {
answer += parseInt(m[i]);
}
return answer;
}
먼저 숫자를 String으로 변환시켜 분리한 뒤 for문으로 돌아가면서 각 자리의 합을 구하고 문자열을 다시 정수로 변환해 리턴하는 방법을 썼다. 다른 사람들의 코드를 보니 split으로 한 개 씩 분리 시켜서 코드를 짜셨던데 split이 기억이 안 나서 냅다 String으로 변환. 그런데 for문에서 왜 m의 길이가 0 이상일 때는 코드에서 오류가 나는지 잘 모르겠다.
function solution(n)
{
var answer = 0;
var str = n.toString();
var str_split = str.split('');
for(var i=0; i<str_split.length; i++){
answer += parseInt(str_split[i]);
}
return answer;
}