문제
[문제 설명]
자연수 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 함수를 통해 배열을 간단하게 만들었다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스 - 스택/큐 / 2단계] 기능개발 (0) | 2024.09.28 |
---|---|
[프로그래머스 - mysql / 5단계] 멸종위기의 대장균 찾기 (0) | 2024.06.19 |
[프로그래머스 - js / 1단계] 약수의 합 (0) | 2024.06.17 |
[프로그래머스 - js / 1단계] 문자열을 정수로 바꾸기 (0) | 2024.06.12 |
[프로그래머스 - js / 1단계] 문자열 내 p와 y의 개수 (0) | 2024.06.11 |