Jayksss DEV
article thumbnail
문제 설명
한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.

제한사항
3 ≤ num_str ≤ 100

 

내 풀이:

reduce부터 생각났지만 사용법 까먹음 이슈..

.reduce(e => e + e);  이런 느낌으로 500번 썼다가 지웠다...😵‍💫

다른 풀이 보니까 charAt은 없더라 더 뒤로 넘기면 있나

function solution(num_str) {
    let answer = 0;
    for(let i = 0; i < num_str.length; i++) {
        answer += Number(num_str.charAt(i));
    }
    return answer;
}

 

다른 풀이:

이 풀이가 괜찮다고 생각한 이유가 reduce는 당연히 사용되었고,

스프레드 연산자가 같은 타입이 아니라 배열안에 문자열을 넣어도 된다는 걸 알았다.

이런게 기억에 오래 남는다

function solution(num_str) {
    return [...num_str].reduce((a, c) => a + +c, 0)
}

 

reduce

array.reduce((accumulator, currentValue, currentIndex, array) => {
  // callback logic
}, initialValue);

accumulator: 이전 콜백의 반환값을 보유하는 변수 (또는 initialValue가 제공된 경우 초기값).
currentValue: 현재 처리되고 있는 배열의 요소.
currentIndex: (선택사항) 현재 처리되고 있는 요소의 인덱스.
array: (선택사항) reduce()를 호출한 배열.
initialValue: (선택사항) accumulator의 초기값을 제공하는 값.
profile

Jayksss DEV

@Jayksss

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!