[알고리즘/Programmers] 숫자 문자열과 영단어

해달·2021년 10월 17일
0
post-thumbnail

문제

나의 풀이

function solution(s) {
  const numAlphabet = { 'zero': 0, 'one': 1, "two": 2, "three": 3, "four": 4, "five": 5, "six": 6, "seven": 7, "eight": 8, "nine": 9 }
  let result = ''
  let change = []

  for (let i = 0; i < s.length; i++) {
    if (!isNaN(Number(s[i]))){
      change.push(Number(s[i])) // 숫자 넣어주기
    }
    if (isNaN(Number(s[i]))){ // 글자일때
      result += s[i] // 글자 계속 쌓아주기
    }
    if(numAlphabet[result]||numAlphabet[result]===0){
      change.push(numAlphabet[result]) // 객체에서 찾아서 넣어주기 
      result = '' // 초기화
    } 
  }
    
  return Number(change.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);
}

join과 split을 기존에 배열에서 문자열자를때만 써와서 위와 같은 풀이로 활용할 생각을 못했다.
join과 split메서드 사용법을 다시 한번 되짚어보았다.

0개의 댓글