문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
- 필터링한 answer가 빈 배열이면 자연수가 없는 문자열이므로 0을 반환한다.
- map(Number)는 유용하게 쓰이니 기억해두자.
- 빈 문자열("")을 숫자화(Number)하면 0으로 바뀐다. 따라서 정답1에서 filter를 빼고 정답2로 간소화할 수 있다.
let x = "";
console.log(Number(x)); // 0
정답
function solution(my_string) {
let regex = /[^0-9]/g;
let answer = my_string
.replace(regex, " ")
.split(" ")
.filter(x => x !== "");
return answer.length === 0 ? 0 : answer.map(Number).reduce((a, b) => a + b);
}
function solution(my_string) {
return my_string
.replace(/[^0-9]/g, " ")
.split(" ")
.map(x => Number(x))
.reduce((a, b) => a + b);
}