코딩테스트

[프로그래머스] 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 숫자가 아닌 것
  • 숫자가 아닌 것 즉, 문자로 문자열을 나누어 배열에 넣는다.