본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 72 - 영어가 싫어요)

728x90

 

# 문제

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.



# 답안 

// 1. 입력: 문자열 numbers -> "onetwothree" 같은거
// 2. 출력: numbers를 정수로 바꿔서 return

// 객체 하나 만들고, 정규표현식으로 치환하고, 문자열을 숫자로 바꾸기

function solution(numbers) {
    const obj = {
        zero: 0, one: 1, two: 2, three: 3, four: 4,
        five: 5, six: 6, seven: 7, eight: 8, nine: 9
    };

    const num = numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => { return obj[v]; });

    return Number(num);
}



# 인사이트 

// 정규표현식
// numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => {
        return obj[v];

// 첫번째 인자: 치환할 대상, 두번째 인자: 치환 과정에서 사용될 함수 or 치환할 값
// zero|one|two|three|four|five|six|seven|eight|nine/g :  "zero", "one", "two", ..., "nine" 중 하나의 단어를 찾아냄
728x90