문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
- 1 ≤ my_string의 길이 ≤ 1,000
- 1 ≤ my_string 안의 자연수 ≤ 1000
- 연속된 수는 하나의 숫자로 간주합니다.
- 000123과 같이 0이 선행하는 경우는 없습니다.
- 문자열에 자연수가 없는 경우 0을 return 해주세요.
function solution(my_string) {
let number = my_string.match(/\d+/g);
// my_string = "aAb1B2cC34oOp"
// number = [ '1', '2', '34' ]
return number !== null ?
number.reduce((acc, cur) => acc + parseInt(cur), 0) : 0
}
정규 표현식을 사용하여 my_string 문자열을 분리
my_string = "aAb1B2cC34oOp"
let number = my_string.match(/\d+/g);
// number = [ '1', '2', '34' ]
제한사항에서 문자열에 자연수가 없는경우 0을 반환하라고했다.
자연수가 없으면 number가 null이 반환되었다.
return number !== null ?
number.reduce((acc, cur) => acc + parseInt(cur), 0) : 0
삼항 연산자 사용
number.reduce((acc, cur) => acc + parseInt(cur), 0)
0부터 시작하는 누산기 acc에 number 요소 cur들을 차례로 정수형으로 변환( parseInt(cur) )하여 더해준 값을 리턴