반응형
문제
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
의식의 흐름
- split을 쓰면 되겠다. -> str에서만 사용 가능하다. -> n이 정수값이다 -> 변환을 어떻게 하지? -> String사용
- 덧셈을 어떻게 할까? -> reduce함수 사용 -> 현재값이 str값이니까 Number로 다시 정수로 변환해서 더해준다.
초기 코드
function solution(n)
{
const answer = String(n).split('').reduce((acc,cur)=> acc += Number(cur),0)
return answer
}
다른이들의 정답
방법1. 문자열 처리
function solution(n){
return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
String()함수가 아닌 (n+"") 이렇게해도 str이 된다.
parseInt( string, n ) 이렇게쓰면 string을 n진법으로 바꿔주는 함수지만,
그냥 값을 적어서 정수로 변환할때도 사용되는듯 하다.
방법2. 숫자 풀이
function solution(n){
// 숫자풀이
var sum = 0;
do {
sum += n%10;
n = Math.floor(n/10);
} while(n > 0);
return sum;
}
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] level1. 제일 작은 수 제거하기 (javascript) (0) | 2021.04.16 |
---|---|
[프로그래머스] level1. 직사각형 별찍기 ( javascript) (0) | 2021.04.16 |
[프로그래머스] level1. 내적 (javascript) (0) | 2021.04.16 |
[프로그래머스] level1. 크레인 인형뽑기 게임 ( javascript) (0) | 2021.04.16 |
[프로그래머스] level1. 2016년 (javascript) (0) | 2021.04.16 |