Programmers_숨어있는 숫자의 덧셈

post-thumbnail

숨어있는 숫자의 덧셈

Q : 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

[입출력 예]

my_stringresult
"aAb1B2cC34oOp"10
"1a2b3c4d123"16

입출력 예 설명
입출력 예 #1

  • "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.

입출력 예 #2

  • "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.

[풀이]

function solution(my_string) {
    let arr = [...my_string].filter((el) => !isNaN(el));
    
    let num = arr.reduce((acc,cur) => acc+ Number(cur),0) 
    // 초기값을 0으로 주고 숫자의 형태로 숫자의 합을 누적함
    
    return num;
}

알게된 내용

  • !isNaN : 숫자가 아닌 값을 검사하기위한 방법 중 하나
  • 문자열을 배열로 만들어 줄떄 스프레드 연산자를 사용하는데 문자열의 각 문자를 개별적인 요소로 가지는 배열로 만들어줌
  • reduce 고차함수를 사용할 때 초기값을 0으로 설정해야 빈 배열에서도 에러가 발생하지 않고 초기값을 설정하여 코드의 안정성을 높일 수 있다.

0개의 댓글