문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
● 1 ≤ my_string의 길이 ≤ 1,000
● my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
"aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.
"1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.
연속된 숫자도 각각 한 자리 숫자로 취급합니다.
function solution(my_string) {
let results = 0;
const regex = /[^0-9]/g;
const result = my_string.replace(regex, "");
const number = result.split("");
number.forEach((a) => {
let number = parseInt(a);
results += number;
});
return results;
}
나는 유의사항을 읽고 안도의 한숨을 쉬었다. 연속된 숫자도 각각 한 자리 숫자로 취급한다는 것이 나에게는 너무 다행이었다.
물론 나중에 연속된 숫자를 그대로 취급하는 문제가 나온다
정규식으로 숫자만 걸러내어, split으로 쪼개었다. 이후에는 forEach로 다 합쳤다.
끝!