🌭 문제 설명
- 자연수
N
이 주어지면, N
의 각 자릿수의 합을 구해서 return
하는 solution
함수를 만들어 주세요.
- 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
🍗 제한 사항
N
의 범위 : 100,000,000 이하의 자연수
🎁 입출력 예시
- 1 + 2 + 3 = 6이므로 6을 return 하면 됩니다.
- 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
😎 나의 풀이
function solution(n)
{
return String(n).split('').reduce((acc, cur) => acc + cur * 1,0);
}
console.log(solution(123)); // 출력 : 6
console.log(solution(987)); // 출력 : 24
- 입력받은
n
을 String
메서드로 문자열로 바꿔주고 split
메서드로 배열로 바꿔 준 다음 reduce
메서드로 배열의 처음부터 끝까지 누적해서 더한 값을 return
한다.
- 곱하기 1을 함으로써 정수로 바꿔서 return한다.
🧵 다른 풀이
function solution(n){
// 쉬운방법
return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
- 거의 유사한 방법이지만 이 풀이는
String
메서드를 쓰지 않고 n + ""
로 JS에서 덧셈 연산자 +
를 사용할 때, 피연산자 중 어느 하나가 문자열이면 문자열이 아닌 다른 피연산자도 문자열로 타입이 변환되어 문자열을 합친 값이 반환되는 특성을 이용했다.
- 나는 곱하기 1을 해서 정수로 바꿨지만
parseInt
메서드를 사용해서 정수로 바꿨다.
n +""
의 방식으로 문자열로 바꾸는 방법을 새롭게 알게되었다!🎠