본문 바로가기
코딩테스트

(javascript) 숫자 문자열과 영단어

by 어뇨 2024. 1. 28.

 

풀이방법

function solution(s) {
    let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
    let answer = s;
    for(let i = 0 ; i < numbers.length ; i++){
        let arr = answer.split(numbers[i]);
        answer = arr.join(i);
    }

    return Number(answer);
}

 

우선 숫자를 영어로 바꿨을때의 문자가 필요하다.

zero부터 nine까지의 문자열로 이루어진 배열을 만들어주고

반복문 for를 써서 배열 하나하나를 돌리고 split을 이용해서 numbers[i]에 해당하는 문자들을 나누었다.

그리고 join함수를 사용해서 현재숫자의 인덱스 값인 i를 넣어주고

answer는 문자열이기때문에 숫자열로 바꾸는 Number() 또는 *1, /1을 해주면 된다.

 

생각보다 푸는데 시간이 오래 걸렸다.

왜냐면 우선 저렇게 푸는건 오래걸리지 않았는데, 다른 방법이 있을거 같다는 생각이 너무 들었다.

예를들면 문자에 해당하는 숫자로 자동으로 바꾸는 함수가 있다던지 

근데 너무 오래걸리는거 같아서 저렇게 제출하고 보니까, 다른사람들도 다 비슷한 방법으로 풀고 그런 함수는 존재하지않았다.