프론트엔드 개발자의 기록 공간

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

알고리즘_JS/프로그래머스_Level1

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

[리우] 2021. 7. 11. 11:14

프로그래머스 Level1 -> 2021 카카오 채용연계형 인턴십 문제

 

문제 설명 : 입력으로 들어오는 숫자가 Number형 숫자 or 문자열 숫자로 혼합되어 들어옵니다.

이것을 전부 Number형 숫자로 바꿔주면 됩니다. ex)  "one4seveneight"  -> 1478 

 

 

저는 문제접근을 다음과 같이 구상했습니다. 

1. 정규표현식을 이용하여 one, two ~ nine와 각각의 숫자를 나누어 변환

즉, "one4seveneight" -> [one, 4, seven, eight]

2. 숫자와 영단어를 이용하여 객체 생성

3. 반복문을 돌면서 객체에 key가 있으면 해당하는 value값 삽입, 없으면 그냥 삽입(이미  Number숫자인 경우)

 

function solution(s) {
    var answer = "";
    //정규표현식 활용->찾는 문자열 또는 숫자기준으로 매치
    s = s.match(/zero|one|two|three|four|five|six|seven|eight|nine+|[0-9]/g);
    
    //객체 이용
    let change = {
        "zero" : 0,
        "one" : 1,
        "two" : 2,
        "three" : 3,
        "four" : 4,
        "five" : 5,
        "six" : 6,
        "seven" : 7,
        "eight" : 8,
        "nine" : 9
    }

    for(let x of s){
        //객체에 해당 key가 있으면 value 삽입. 없으면 문자열 x삽입
        answer += change[x] === undefined ? x : change[x]
    }
    //숫자형으로 변환
    return Number(answer);
}

*정규식을 잘 배워놓자

728x90
Comments