https://school.programmers.co.kr/learn/courses/30/lessons/120864#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[ 문제 ]

[ 내 풀이 ]
function solution(my_string) {
// 정규식을 사용하여 하나 이상의 연속된 숫자만 찾음
// .match(/\d+/g) = 문자열내의 모든패턴을 감시하여 숫자를 찾음
let arr = my_string.match(/\d+/g)
// .match는 주어진 조건으로 찾은 값이 없는경우 null을 반환
// 그러므로 null이라면 숫자가 없으므로 바로 0 반환
if(arr!==null){
// 찾은 문자열타입의 숫자를 Number타입으로 변환
// reduce를 사용하여 값을 모두 더하여 리턴
return arr.map(Number).reduce((a,c)=>a+c,0);
}
else{
return 0;
}
}
[ 다른 풀이 ]
문제풀이를 통해 배운내용
function solution(my_string) {
// \D의 의미는 "숫자가 아닌 것" 입니다.
// 숫자가 아닌 값을 기준으로 split하기대문에..
// match를 사용했을때처럼 null인지 판별하지 않아도 됩니다.
// reduce의 cur값에 바로 Number를 씌워 Number타입으로 변환하였고
// 이를 acc에 축적하였습니다는 점이 제 코드와 달랐습니다. ( 개선점 )
return my_string.split(/\D+/).reduce((acc, cur) => acc + Number(cur), 0);
}반응형
'Algorithm > Javascript' 카테고리의 다른 글
| [ 프로그래머스 ] 인덱스 바꾸기 ( JS ) (0) | 2024.07.25 |
|---|---|
| [ 프로그래머스 ] 영어가 싫어요 ( JS ) (1) | 2024.07.24 |
| [ 프로그래머스 ] 대문자와 소문자 ( JS ) (7) | 2024.07.23 |
| [ 프로그래머스 ] 암호 해독 ( JS ) (2) | 2024.07.23 |
| [ 프로그래머스 ] 369게임 ( JS ) (0) | 2024.07.21 |
