[프로그래머스 Lv1] 자릿수 더하기 - (Javascript)

eeeyooon·2023년 11월 30일
0

자릿수 더하기

문제 링크

📩 문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.

예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

입출력 예

Nanswer
1236
98724

제출 답안

function solution(n) {
    return n.toString().split("").reduce((acc,cur) => acc + parseInt(cur, 10) , 0 );
}

답안 설명

123의 각각을 한 자릿수씩 배열의 요소로 넣기 위해서 우선 문자열로 만들어 준 뒤, String.prototype.split()을 사용하여 한 자릿수씩 배열의 요소로 넣었다. 누적값을 구하기 위해 reduce()를 사용하였고 각각의 요소가 문자열로 들어가 있으므로 parseInt()를 사용하여 숫자로 바꾸어준 뒤 누적값에 더하였다.
아래는 for문을 이용한 답안이다. reduce()를 사용한 답안보단 길지만 더 직관적이다.


for문 사용

function solution(n) {
	const newArr = n.toString().split("");
    let answer = 0;
    for (let a of newArr) {
        answer += +a;
    }
    
    return answer;
}

다른 사람의 풀이

function solution(n){
    return [...(n+"")].reduce((acc, curr) => acc + curr*1);
}

내 답안과 같은 방식이지만, 숫자를 문자열 배열로 바꿔주는 방법을 spread operator로 사용했다. 문자열이 이터러블하다는 걸 알고 있었는데, spread operator는 모든 이터러블한 것들을 전개 구문해줄 수 있다는 걸 모르고 있었다. 🙄 이번 기회에 새로 알게 돼서 기억해놓기!



0개의 댓글