코딩테스트
[프로그래머스] Lv.0 숨어있는 숫자의 덧셈(2)
3은
2023. 9. 12. 04:08
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120864
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
코드
function solution(my_string) {
return my_string.replace(/[a-zA-Z]/g,'/').split('/').reduce((a,c) => a = Number(c) + a, 0);
}
1. my_string.replace(/[a-zA-Z]/g,'/')
- my_string에서 소문자, 대문자를 모두 '/'로 바꾼다.
2. split('/')
- /를 기준으로 문자열을 나누어 배열로 만든다.
3. reduce((a,c) => a = Number(c) + a, 0)
- 배열을 차례대로 순회하면서 숫자들을 더한다.
ex) my_string = "aAb1B2cC34oOp" -> "///1/2//34///" -> ["","","","1","2","","34","","",""] -> 37
다른 사람 코드
function solution(my_string) {
return my_string.split(/\D+/).reduce((acc, cur) => acc + Number(cur), 0);
}
1. 정규표현식 /\D+/
\D | 숫자가 아닌 것 |
- 숫자가 아닌 것 즉, 문자로 문자열을 나누어 배열에 넣는다.