CODETEST
[프로그래머스] 자릿수 더하기
wooodii
2022. 9. 15. 10:04
문제)
자연수 N이 주어지면, N의 각 자리수 합을 구해 return하는 solution함수를 만들어 주세요.
N =123이면 1+2+3 =6을 return하면 됩니다.
풀이1)
자연수의 각 자릿수를 더해야 할 경우,
자연수는 일반적인 형태로 다루는 것이 아니라 문자열 인덱스로 변환해 나누기
> 다시 자연수처럼 변환해 더하는 것을 실행
1. 받은 자연수를 문자열로 바꿈 2. 문자열 인덱스를 탐색해 문자열로 쪼갠 다음, 다시 자연수를 변환해 더함
function solution(n) {
let answer = 0
n = n.toString()
// toString()을 통해 문자열로 변경
for (let i =0; i<n.lengt; i++){
answer += parseInt(n[i])
// 문자열의 각 인덱스 값은 parseInt를 이용해 파싱하여 정수로 반환
}
return answer;
}
풀이 2)
function solution(n) {
return(n+"").split("")/reduce((acc,curr) => acc + parseInt((curr), 0)
}
// return(n+"")
// 피연산자 중 1개가 문자열이면 문자열로 타입 변환
// n+"" = 숫자+ 문자열의 형태이기 때문에 문자열 n을 반환
// Strig(n)과 동일한 역할
1) 숫자를 문자열로 바꾸기 위해서 이항 연산자 +를 활용
2) 자바스크립트에서 +(이항 연산자) 는 문자열을 연결하는 기능을 가짐
3) 피연산자가 문자열 일 때, 문자열을 연결하는데, 어느 하나가 아니라면 문자열로 형변환을 함
4) 문제에서 n+" " n은 숫자, ""은 빈 문자열 > 문자열이 아닌 n을 문자열로 형변환 > 문자열 n
* 숫자형 > 문자형 > 배열로 변환한 이후에, `reduce`를 이용해서 return 사용함
728x90