본문으로 바로가기
반응형

문제

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

 

정답

function solution(num_str) {
   const a = num_str.split('')  //문자열을 '' 이용해서 배열로 변환시킨다.
   const b = a.map(Number)  // 배열에 있는 문자열을 숫자로 변경한다.
   return b.reduce((c,d)=>c+d);  // 배열의 숫자의 값을 더한다.
}

 

코드 리펙토링

function solution(num_str) {
    return [...num_str].reduce((a, c) => a + +c, 0)
}
// spread 연산자를 이용해 개별 배열 요소로 나눔.
// reduce 함수는 배열의 각 요소를 순회하면서 누적 합을 계산해. 
// 여기서 a는 누적값이고, c는 현재 배열 요소를 나타내.

// +c는 현재 배열 요소인 c를 숫자로 변환해. 예를 들어, '1'은 숫자 1로 변환됨.
// a + +c는 현재 누적값 a에 현재 요소 c를 숫자로 변환한 값을 더해.
// 초기값은 0이므로 reduce 함수는 첫 번째 요소부터 시작해 누적 합을 계산해.




// 새로운 배열을 반환하는 메소드
// spread operator, map, filter, slice, reduce 
// * splice는 원본데이터를 변경함

 

반응형