1차 공부/알고리즘

자릿수 더하기

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

 

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

 

 

function solution(n)
{
    var answer = 0;
    let a = n.toString().split('')  //입력값을 문자열로 바꾸고 문자단위로 나누어 배열로 저장한다.
    for(let i=0; i<a.length; i++) { //모든 문자에 대한 for문
        answer += Number(a[i])  //answer값에 각 인덱스 요소들을 숫자형태로 더해준다.
    }
    return answer;
}

맨 처음 작성한 코드이다. for문을 사용해서 각 인덱스값들을 모두 숫자형태로 더하는 방식으로 풀었다.

 

 

 

이 글을 작성하며 reduce로 풀 수 있을것 같아 또 작성해 보았다.

function solution(n)
{
    a = (n+'').split('')
    return a.reduce((acc,cur)=> acc+Number(cur), 0)
}

입력값을 문자열로바꾸어 배열로 나누는건 똑같고, 초기값을 0으로 설정해 reduce를 간단하게 사용해보았다.

'1차 공부 > 알고리즘' 카테고리의 다른 글

정수 내림차순으로 배치하기  (0) 2022.11.23
자연수 뒤집어 배열로 만들기  (0) 2022.11.23
이상한 문자 만들기  (0) 2022.11.23
완주하지 못한 선수  (0) 2022.11.23
수박수박수박수박수박수?  (0) 2022.11.23