[프로그래머스] 영어가 싫어요

stella·2023년 1월 4일
0

Algorithm

목록 보기
2/40
post-thumbnail

문제

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

numbersresult
"onetwothreefourfivesixseveneightnine"123456789
"onefourzerosixseven"14067

순서도

  1. numbers에 공백을 넣어 원소들을 하나씩 띄어놓기 "zero", "one", "two", ... "nine"
    원소들을 하나씩 띄어놓으려면 어떤 방법이 있을까?
    1-1. 원소들이 하나씩 띄어진 number라는 배열을 만들어서 그 배열의 길이만큼 반복문을 돌린다.
    1-2. 반복문 안에서 number 배열의 i만큼 split 해준다. number[i]란? 'one' 'four' 'zero'
    1-3. split 된 numbersi로 메꿔주어 '14067' 형태로 만든다.
  2. split은 string type이기 때문에 마지막에 숫자로 형변환을 해주어야 한다.

나의 풀이

function solution(numbers) {
    const number = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    
    for (let i = 0; i < number.length; i++) {
        //split을 number[i] 기준으로 자르고 잘린곳을 i로 메꿔주는 방식이다.
        numbers = numbers.split(number[i]).join(i);
    }
    //split은 string이라 마지막에 number로 형 변환을 해줬다.
    return Number(numbers);
}
profile
Frontend Engineer

0개의 댓글