728x90
문제
자연수 N이 주어지면, N의 각 자릿수의 합을 구해 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한 사항
- N의 범위: 100,000,000 이하의 자연수
입출력 예
N | answer |
123 | 6 |
987 | 24 |
입출력 예 설명
입출력 예 #1
문제는 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24 이므로 24를 return하면 됩니다.
1.문제 이해하기
입력으로 들어올 숫자의 각 자리 수를 합한 값을 변환해주면 된다.
n의 값이 123 이면 1 + 2 + 3 = 6을 retun 하면 된다.
2.해결 방법
입력으로 들어온 숫자를 문자로 변환해 다음 배열로 만들어 reduce를 이용해 각 자리 숫자를 더한다.
더할 떄에도 마찬가지로 문자를 숫자로 변환해서 더해준다.
const solution = (n) =>
n
// 객체가 가진 정보를 문자열로 만들어 return
.toString()
// 가져온 문자들을 splic을 향해 쪼개준다.
.split("")
// retuce를 이용해 각 자리 숫자를 더해준뒤 더할 떄도 마찬가지로 문자를 숫자로 변환해 더한다.
.reduce((acc,cur) => acc + Number(cur), 0);
멘토님 풀이법
function solution(n)
{
// var answer = 0;
// // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
// console.log('Hello Javascript')
// return answer;
let answer = 0; // answer의 초기값 0
// number 타입은 index 개념이 없어 각각 요소를 가져올 수 없다.
// number 타입의 데이터를 문자열로 바꾸고 반복문을 사용해 요소로 가져와 숫자타입으로
// 바꿔주면 총 숫자를 가져올 수 있다.
console.log(typeof n)
n = String(n)
// n의 값의 0번째 index와 1번째 index값을 가져옴
// console.log(n[0])
// 값이 하나씩 증가하면서 각각의 index 값을 가져옴
for(let i = 0; i < n.length; i++) {
// console.log(n[i])
// 현재 string으로 가지고 있다.
// console.log(typeof n[i])
// Number 타입으로 변환해 answer에 더해주면 숫자의 연산 처럼 값이 더해진 값이 return
answer += Number(n[i]) // answer라는 데이터의 n의 i값을 더해주면 됨
}
return answer;
}
function solution(n)
{
// reduce를 사용한 문법
// 문자열로 먼자 반환
// reduce index 2개
const answer = String(n).split("").reduce(( cu, el ) => {
// 문자열 형태라 cu 와 el이 벌려저 나옴
console.log(typeof cu, typeof el)
// cu와 el을 Number 타입으로 받아와야함
return Number(cu) + Number(el);
})
// 문자열로 먼자 반환
// console.log(answer)
return answer
}
function solution(n)
{
// reduce를 사용한 문법
// 문자열로 먼자 반환
// reduce index 2개
const answer = String(n).split("").reduce(( cu, el ) => {
// 문자열 형태라 cu 와 el이 벌려저 나옴
console.log(typeof cu, typeof el)
// cu와 el을 Number 타입으로 받아와야함
// Number 타입으로 주면 굳이 감쌀 필요 X
return cu + el;
// 0을 받아옴 초기값을 받아 오는데, 0은 숫자타입 부터 받아오니
// 맨처음부터 숫자 Number타일을 가지고 있다.
},0)
// 문자열로 먼자 반환
// console.log(answer)
return answer
}
'etc. > Algorithm' 카테고리의 다른 글
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2022.01.20 |
---|---|
[프로그래머스] 약수의 합 (0) | 2022.01.19 |
[프로그래머스 코딩테스트] 서울에서 김서방 찾기 (0) | 2022.01.19 |