[프로그래머스] Lv.0 - 숨어있는 숫자의 덧셈(1)

dev.galim·2023년 4월 3일
0

프로그래머스 - Lv.0

목록 보기
9/10
post-thumbnail

문제 설명

문제 풀이

function solution(my_string) {
    const regex = /[^0-9]/g;
    const result = my_string.replace(regex, "");
    
    return result.toString().split('').reduce((a,b) => a + Number(b), 0);
}

문자 제거하기

문자열에서 문자만 제거하고 싶을 땐, 정규식으로 문자를 모두 제거하면 된다.
/[^0-9]/g 에서 /[^0-9]/는 숫자가 아닌 문자를 의미하는 패턴이고, g는 문자열에서 모든 패턴을 찾으라는 의미이다.

replace(regex, "")는 regex에 해당하는 모든 패턴을 찾아 ""로 반환해주기 때문에 숫자가 아닌 문자는 모두 제거된다.
이를 이용하여 문자를 제거해준뒤, 앞서 풀었던 문제와 동일하게 reduce를 이용해 모든 숫자를 더해주었다.

다른 문제 풀이

function solution(my_string) {
    const answer = my_string.replace(/[^0-9]/g, '')
      .split('')
      .reduce((acc, curr) => acc + Number(curr), 0);
    return answer;
}
profile
열심히 해볼게요

0개의 댓글