[Javascript] LV.1 자릿수 더하기

은비·2023년 11월 11일
1

Programmers_CodingTest

목록 보기
57/72
post-thumbnail

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.

예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항

  • N의 범위 : 100,000,000 이하의 자연수

입출력 예

Nanswer
1236
98724

입출력 예 설명

입출력 예 #1

문제의 예시와 같습니다.

입출력 예 #2

9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.


✍ SOLUTION1

const solution = (N) => 
String(N).split("").reduce((acc, curr) => acc + Number(curr),0);

/*
내가 처음 작성한 코드이다.

1. 매개변수로 받아오는 N은 number type이므로 먼저 String으로 변환 후 split 메서드를 사용하여 
각 stirng을 분리시킨 배열로 만들어준다.
2. reduce를 사용하여 다 더해준 값을 return 해준다. 
(이때, curr은 string type이기 때문에 Number로 변환 후 더해준다.)
*/

✍ SOLUTION2

const solution = (N) => {
    const arrayStrN = N.toString().split("");
    let result = 0;
    for(let i = 0; i < arrayStrN.length; i += 1) {
        result += +arrayStrN[i]
    }
    return result;
}

/*
for문을 사용하여 명령형으로 코드를 작성해 보았다.

1. arrayStrN 변수에는 N을 string으로 변환해주는 toString을 한 후 split을 통해 각 string을
분리시킨 배열을 담아준다.
2. result에 0이 담긴 변수를 만들어준다.
2. for문을 이용하여 i가 0부터 arrayStrN의 길이(length)만큼 1씩 증가하면서 result 변수에 
arrayStrN[i]을 더해서 담아주었다. (이때 arrayStrN의 요소는 string type 이므로 앞에
+를 붙여주어 강제 형변환 시켜준다.)
3. for문이 완전히 종료 후 result를 return 해주었다. 
*/

출처 : 프로그래머스 스쿨 | 코딩테스트 연습

0개의 댓글