[알고리즘] 숫자만 추출


문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출해 그 순서대로 자연수를 만드는 함수를 작성하세요.

만약 'g0en2t0s8eSoft'에서 숫자만 추출하면 0, 2, 0, 8이고 이것을 자연수로 만들면 208이다.


문제풀이

정규표현식을 이용해서 숫자를 제외하고 나머지 알파벳을 모두 공백으로 제거해준다.

function solution(s) {
  let answer;
  let s2 = s.replace(/[^0-9]/g, '').split('');

  s2.filter(item => item > 0);
  return answer =  Number(s2.join(''));
}


다른 문제풀이

function solution(str) {
  let answer='';
  for (let x of str) {
    if (!isNaN(x)) answer+=x;
  }
  return parseInt(answer);
}

parseInt를 이용하지 않고 풀기

function solution(str) {
  let answer=0;
  for (let x of str) {
    if (!isNaN(x)) answer=answer*10+; // +를 더하면 숫자형으로 변환되는 원리를 이용했다.
  }
  return answer;
}

좋은 웹페이지 즐겨찾기