자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
N의 범위 : 100,000,000 이하의 자연수
solution 1
은 toString(), map(), reduce()
메서드를 이용해서 해결했다.
solution 2
는 String(), map(), reduce()
메서드를 이용해서 해결했다.
solution 3
은 ``(템플릿 리터럴)
과 map(), reduce()
메서드를 이용해서 해결했다.
solution 4
는 ``(템플릿 리터럴)
과 reduce()
메서드를 이용해서 해결했다.
solution 4
는 map()
메서드 대신에 reduce()
메서드에서 a, b
의 값에 +
로 타입변환을 하면서 바로 더해주는 방법을 이용했다.
// solution 1
function solution(n) {
const sum = [...n.toString()].map(num => +num).reduce((a, b) => a + b, 0);
return sum;
}
// solution 2
function solution(n) {
const sum = [...String(n)].map(num => +num).reduce((a, b) => a + b, 0);
return sum;
}
// solution 3
function solution(n) {
const sum = [...`${n}`].map(num => +num).reduce((a, b) => a + b, 0);
return sum;
}
// solution 4
function solution(n) {
const sum = [...`${n}`].reduce((a, b) => +a + +b, 0);
return sum;
}
solution(103); // 4
MDN - String
MDN - Number.prototype.toString()
String
String 전역 객체는 문자열(문자의 나열)의 생성자이다. 문자열은 String 전역 객체를 직접 사용하여 생성할 수 있다.String(thing)
에서 매개변수thing
은 문자열로 변환할 아무 값을 넣으면 된다.
toString()
toString() 메서드는 특정한 Number 객체를 나타내는 문자열을 반환한다.
numObj.toString([radix])
에서radix
에 진수를 나타내는 값을 넣어주고 생략할 경우 임의의 10진수로 가정하게 된다.var count = 10; console.log(count.toString()); // '10' var x = 6; console.log(x.toString(2)); // '110'