[프로그래머스 level1] 자릿수 더하기

김예지·2021년 10월 8일
1

문제

https://programmers.co.kr/learn/courses/30/lessons/12931


문제 풀이

코드1

function solution(n)
{
    let answer=0;
    n=n.toString().split('');
    for(let x of n) {
        answer+=Number(x);
    }
    return answer;
}

코드2

여러개의 메소드를 활용해서 for문을 돌지않고 해결할 수 있었다. map은 배열의 요소를 모두 돌면서, 새로운 배열을 만든다는 것을 기억하자!

function solution(n)
{
    return n.toString().split('').map(v => Number(v)).reduce((a, b) => a+b, 0);
}
profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 10월 25일

만약 return n= n.toString().split('').reduce((a, b) => Number(a)+Number(b));만 작성하면, n의 길이가 1일때는 실패가 뜬다. 왜냐면 reduce메소드까지 가지 못하기 때문에 Number()로 변환이 되지 않는다. 따라서, if(n<10) return n이라는 조건을 넣어줘야한다.
혹은 reduce전에 map(v=>Number(v))를 통해 number화 시켜주면 reduce까지 가지않더라도 number화 되기 때문에 성공이다.(위 풀이 참고)

제한사항을 잘 생각하자!

답글 달기