[프로그래머스] 숫자 문자열과 영단어 with JavaScript

waterglasses·2022년 1월 24일
0
post-thumbnail

📌 문제

https://programmers.co.kr/learn/courses/30/lessons/81301

📌 풀이

  • 0부터 9까지의 숫자를 영단어로 지정해놓고 반복문을 돌리면서 숫자로 변경하였다.
  • 나는 split('')이 너무 익숙하여 그동안 split의 정의를 잊어버린듯 하다.
  • 모범 답안처럼 split을 영단어로 나누는 깔끔한 방법을 잊지 말자.

📌 내 코드

function solution(s) {
  let numObj = new Map();
  numObj.set('zero', 0);
  numObj.set('one', 1);
  numObj.set('two', 2);
  numObj.set('three', 3);
  numObj.set('four', 4);
  numObj.set('five', 5);
  numObj.set('six', 6);
  numObj.set('seven', 7);
  numObj.set('eight', 8);
  numObj.set('nine', 9);

  let num = '';
  let answer = [];
  s.split('').forEach((val) => {
    if (val >= 0 && val <= 9) {
      answer.push(parseInt(val));
    } else {
      num += val;
    }

    if (numObj.has(num)) {
      answer.push(numObj.get(num));
      num = '';
    }
  });
  return parseInt(answer.join(''));
}

📌 모범답안

function solution(s) {
  let numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
  var answer = s;

  for (let i = 0; i < numbers.length; i++) {
    let arr = answer.split(numbers[i]);
    answer = arr.join(i);
  }

  return Number(answer);
}
profile
매 순간 성장하는 개발자가 되려고 노력하고 있습니다.

0개의 댓글