문제 설명 |
자연수 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 |