프로그래머스 | 자릿수 더하기
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
N의 범위 : 100,000,000 이하의 자연수
입출력 예
N | answer |
---|---|
123 | 6 |
987 | 24 |
풀이
자연수 N을 입력받는다.
자연수 N을 문자열로 변환한다.(문자열을 더하는 방식이 처리 속도가 가장 빠르다.)
N을 마디마디 나눈 후 각 배열들의 값을 숫자로 변환하고 전부 더해준다.
전부 더해준 값을 출력한다.
코드
function solution(n) {
let answer = n + "";
let sum = 0;
return answer.split("").map((summary) => (sum = +summary + sum))[
answer.length - 1
];
}
숫자로 변환 할 때 연산자를 이용한 방법을 사용했는데, Number()함수랑 속도 차이가 크게 없다고 한다. 따라서 직관적인 Number()함수를 사용하는 것이 앞으로는 더 올바를 것 같다.
다른 사람 코드
function solution(n) {
var sum = 0;
do {
sum += n % 10;
n = Math.floor(n / 10);
} while (n > 0);
return sum;
}
나는 문자열을 이용해 계산한 반면, 이 분은 숫자계산만으로 값을 도출하였다.
처리 속도가 훨씬 빠르다,,ㄷ ㄷ
이런 사고는 어떻게 길러야 할까라는 고민을 던져준 코드였다.
Author And Source
이 문제에 관하여(프로그래머스 | 자릿수 더하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@isthis/프로그래머스-자릿수-더하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)