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

YuRim Lee·2023년 2월 4일
0

문제 설명

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

제한사항

numbers는 소문자로만 구성되어 있습니다.
numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
1 ≤ numbers의 길이 ≤ 50
"zero"는 numbers의 맨 앞에 올 수 없습니다.

입출력 예

입출력 예 설명

입출력 예 #1

"onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.

입출력 예 #1

"onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.

내코드

function solution(numbers) {
    let arr = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
   
    for(let i = 0 ; i<arr.length ; i++){
        if(numbers.includes(arr[i])){
            numbers = numbers.replaceAll(arr[i] , String(i));  
             console.log(numbers)
        }
    }

    return +numbers;
}

틀린 포인트 기록:
1. replace를 하면 하나만 되고 replaceAll 을 해야 다바뀐다
2. numbers.replace를 해서 다시 numbers 변수에 담아야한다 .

배우고 싶은 코드

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

배운 포인트 :
1. join() 함수 : 괄호안에 i 를 넣었는데 나누어진 것을 i 사이에 끼우면서 문자열로 합칠 수 있다는것
ex) 문자열에서 one 를 split을 해서 나누고 1 으로 다시 join 을 한다 .
그러면 1twothree ....이렇게 됨 ..!!!
참신한방법이네

profile
성장하는개발자

0개의 댓글