본문 바로가기
코딩테스트

[프로그래머스 - js / 1단계] 자릿수 더하기

by 럭키봇 2024. 6. 18.
문제

 

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

[제한 조건]
N의 범위 : 100,000,000 이하의 자연수

 

출처: https://school.programmers.co.kr/learn/courses/30/lessons/12931

 

 

 


 

 

 

예시

 

입출력 예 #1

문제의 예시와 같습니다.


입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

 

 


 

 

풀이

 

function solution(n)
{
    n = String(n);
    var answer = 0;
    for(var i = 0; i < n.length; i++) {
        answer += Number(n[i])
    }
    return answer;
}

 

1. 자연수 n을 문자열로 변환한다.

2. 문자열의 길이만큼 반복문을 돌면서 문자열의 i 번째의 값을 숫자로 변환하여 변수에 더한다.

 

 

 

 


 

 

 

다른 사람의 풀이

 

1. 자연수 n에 문자열"" 을 더해 자동 형변환을 한다

2. 문자열을 split 함수를 통해 배열로 변환한다.

3. reduce 함수를 통해 두번째 파라미터 0 에 값을 누적한다.

function solution(n){
    // 쉬운방법
    return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}

= 변수의 자동형변환과 split 함수를 통해 배열을 간단하게 만들었다.