말랑한 하루

[Programmers] 숫자 문자열과 영단어 (Lv 1, JavaScript) 본문

문제풀이/Programmers

[Programmers] 숫자 문자열과 영단어 (Lv 1, JavaScript)

지수는말랑이 2022. 6. 29. 18:54
반응형

[ 학습 내용 ]
정규표현식 활용

- ReqExp() : ReqExp 객체를 생성합니다.

        리터럴 표기법인 경우 두 빗금(//)을 쓰며 따옴표(")를 사용하지 않음

        생성자 표기법인 경우 따옴표(")를 쓰며 두 빗금(//)으로 감싸지 않음
- flag : 단독 및 중첩사용이 가능함.

        d : 부분 문자열 일치에 대해 인덱스를 생성

        g : 전역 탐색

        i : 대소문자 구분하지 않음

        m : 여러줄에 걸쳐 탐색

        s : 개행 문자가 . 과 일치함

        u : "unicode", 패턴을 유니코드 코드 포인트의 시퀀스로 간주함

        y : "접착"탐색, 대상 문자열의 현재 위치에서 탐색을 시작함


[ 소스 코드 ]

function solution(s) {
    var answer = s.toLowerCase();
    var number = ["zero", "one", "two", "three", "four", 
        "five", "six", "seven", "eight", "nine"];
    number.map((n, index) => {
        let req = new RegExp(n, "g");
        answer = answer.replace(req, index);
    })
    return parseInt(answer);
}

[ 심화 코드 ]

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);
}

[ 코드 분석 ]

- 답이 숫자로 반환되어야 함

- 문자열을 number 문자열로 분리(split)후 해당 숫자(index)로 합침(join)

반응형
Comments