문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
split
으로 한 자리씩 나누어준다.function solution(n) {
let tmp = n+''.split;
for(let i = 0; i<tmp.length; i++){
var answer = answer + tmp[i];
}
return answer;
}
처음에 생각했던 방법은 위와 같았고 역시나 실행이 되지 않았다..🙃
n+''.split으로 정수>문자열 형변환을 해주었고, 이후 answer에 값을 넣어줄 때 문자열로 넣어줬기 때문에 오류가 나는 것 같았다.
계속 끄적이다가 알게된 사실은 split으로 나누지 않아도 된다는 점.
function solution(n) {
let answer = 0;
let tmp = n+"";
for(let i = 0; i<tmp.length; i++){
answer+=parseInt(n[i]);
}
return answer;
}
위의 코드는 정상 작동이 되었다.
▼ 2022년 7월 6일 수정 내용
/*
자연수 n 이 주어지면 각 자릿수의 합을 구해서 리턴하기.
1) 자연수를 문자열로 변환한다.123 > "123"
2) 문자열을 하나씩 뗀다. "1" "2" "3"
3) 돌아가면서 한 자리씩 더한다.
*/
function solution(n) {
var answer = 0;
let str = n + '';
for (let i = 0; i < str.length; i++) {
answer += Number(str[i]);
}
return answer;
}
처음에 다른 사람들의 코드를 참고해서 풀었던 parseInt의 사용법은 아직도 익숙하지 않아 이번에는 Number으로 문자열>숫자로 바꾸어 준 점이 차이점.
split
은 문자열을 나누는 메서드. 정수에는 쓸 수 없다.문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12931