티스토리 뷰

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

 

코딩테스트 연습 - 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출

programmers.co.kr

 

풀이1

function solution(n){
    return n.toString().split('').reduce((prev,curr)=> Number(prev) + Number(curr))
}

처음에는 어제 풀었던 하샤드 수처럼, 문자열로 변환한 뒤, 쪼개고, 다시 숫자로 변환해서 합치도록 함

그런데 효율성이 너무 떨어져 마지막 테스트에서 Fail..

그래서 다시 짠 것이 아래.

 

 

풀이2

function solution(n){
    let answer = 0;
    let letters = n.toString();
    
    for(let i = 0; i < letters.length; i++) {
        answer += Number(letters[i]);
    }
    
    return answer
}

1. 일단 초기값(답)은 0

2. 문자열로 바꾸는 것은 동일

3. 문자열을 for문을 돌며 숫자로 변환해 답에 더해줌

4. answer 리턴

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함