오늘 뭐했냐/기억하면 좋을 문제들

숨어있는 숫자의 덧셈 (1)

스스로에게 2023. 5. 31. 15:10

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

function solution(my_string) {
    
    let arr = my_string.match(/\d/g)
    let numbers = arr.map(n=>Number(n))
    
    return numbers.reduce((a,b)=>a+b);
}

나름 정규표현식을 활용해서 깔끔하게 풀었다

 

function solution(my_string) {
    return [...my_string].reduce((acc,cur)=>Number(cur) ? +acc + +cur : acc, 0)
}

다른 글에서 .reduce() 안에 Number()으로 숫자형으로 바꾸면서 누적값을 계산하는 것을 보았을 때도

저렇게 생각할 수 있구나 싶었는데 이번 문제에서는

삼항연산자로 누적값을 계산할 때의 식을 선택적으로 하게 만들었기에 

이렇게도 만들 수 있구나 싶어서 일단 기록하려고 한다