
1. 막힌 부분
- 문자열을 배열로 만들어 sort를 통해 정렬함으로써 알파벳과 숫자를 분리해보려고 했으나 숫자가 문자열로 입력되었기에 잘 되지 않았다.
-배열 매소드로 각 값을 parseInt를 해주고 typeof를 통해 숫자인 요소만 남겨보려 했으나 undefined가 반환되어 실패했다.
function solution(my_string) {
var count = 0;
var ans = []
Array.from(my_string).forEach( (el)=> {
ans.push(parseInt(el));
return ans
})
}
2. 막힌 부분의 해결
- 정규식을 활용하여 문자를 모두 공백으로 만들어버린다음 숫자인 문자열만 남겼다. 그 뒤 반복문을 통해 숫자인 문자열의 각 인덱스 값을 정수로 파싱해준 뒤 더해 반환했다.
3. 내 풀이
function solution(my_string) {
var try1 = my_string.replaceAll(/[abcdefghijklmnopqrstuvwxyz]/ig, '')
var count = 0;
for(let i=0; i<try1.length; i++){
count += parseInt(try1[i])
}
return count
}
4. 다른 사람의 풀이 중 좋았던 코드 및 분석
function solution(my_string) {
const answer = my_string.replace(/[^0-9]/g, '')
.split('')
.reduce((acc, curr) => acc + Number(curr), 0);
return answer;
}
- 나와는 다르게 숫자만 정규식으로 뽑아서 분리해준 뒤 reduce를 통해 각 배열의 값을 합쳐서 반환했다.
function solution(my_string) {
return [...my_string].reduce((acc,cur)=>Number(cur) ? +acc + +cur : acc, 0)
}
5. 새로 배운 것