[알고리즘] 자릿수 더하기(JavaScript)

yeon·2023년 4월 10일
0

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

입출력 예

Nanswer
1236
98724

첫 시도

function solution(n) {
    let arr = String(n)
        .split("")
        .map((el) => Number(el));

    return arr.reduce((acc, cur) => acc + cur);
}
  • toString()과 String()은 다르다.
    • toString()으로 시도했더니 null이 떠서 통과가 안됐다.

최종 풀이

function solution(n) {
    let arr = String(n).split("");
    return arr.reduce((acc, cur) => acc + Number(cur), 0);
}
  • reduce 공부하기! 초기값을 0으로 설정하지 않았더니 덧셈하지 않고 string으로 붙여버렸다.
  • Number()와 parseInt()의 차이점
    • Number()는 오로지 숫자 타입의 문자열만 Number 타입으로 변환
    • Number()는 소수점을 표시할 수 있음
    • parseInt()는 2번째 파라미터를 이용하여, 문자열을 2진법, 16진법 숫자를 10진법으로 변환할 수 있음
    • null, boolean, empty string 등의 처리에 차이가 있음(Number만 0, 1으로 처리 / parseInt는 NaN)

참고

Number()와 parseInt()의 차이점

0개의 댓글