문제설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
입출력 예
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
코드 설명
var answer = 0;
: 결과값을 저장할 변수 answer를 0으로 초기화합니다.
n = n.toString();
: 주어진 숫자 n을 문자열로 변환합니다. 이렇게 하면 각 자리수를 문자로 분리하여 접근할 수 있습니다.
for(let i of n){...}
: 문자열 n을 순회합니다. for...of 문법을 사용하여 문자열의 각 문자에 접근합니다. 이때 i는 현재 순회 중인 문자를 나타냅니다.
answer += Number(i);
: 현재 순회 중인 문자 i를 숫자로 변환한 후, answer에 더합니다. 이렇게 하면 각 자리수를 모두 더할 수 있습니다.
return answer;
: 더한 결과값 answer를 반환합니다.
예를 들어, n이 123이라면, 함수는 다음과 같이 작동합니다
answer는 0으로 초기화됩니다.
n.toString()에 의해 n은 "123"으로 변환됩니다.
for...of 루프에 의해 "1", "2", "3"을 순회하면서 각 숫자를 Number()로 변환하여 answer에 더합니다.
따라서 answer의 최종 값은 1 + 2 + 3 = 6이 되고, 함수는 6을 반환합니다.
이 함수를 사용하면 어떤 숫자라도 각 자리수를 더할 수 있습니다. 예를 들어, 456을 입력하면 4 + 5 + 6 = 15를 반환하고, 789를 입력하면 7 + 8 + 9 = 24를 반환합니다.
소스코드&결과
소스 코드
function solution(n)
{
var answer = 0;
n = n.toString();
for(let i of n){
answer += Number(i);
}
return answer;
}
다른사람의 풀이
function solution(n){
// 쉬운방법
return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
위의 코드는 split()과 reduce()함수를 이용하여 작성해주었네요!
'Coding Test > 프로그래머스' 카테고리의 다른 글
[JavaScript] 문자열 내 p와 y의 개수 (2) | 2023.07.25 |
---|---|
[JavaScript] 음양 더하기 (2) | 2023.07.24 |
[JavaScript] x만큼 간격이 있는 n개의 숫자 (0) | 2023.07.23 |
[JAVA] 덧칠하기 (0) | 2023.07.22 |
[JAVA] 실패율 (0) | 2023.07.20 |