개발 기록 남기기✍️

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

코딩 테스트 연습

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

너해동물원 2022. 12. 30. 14:20

🗒️ 문제 설명

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

 

 

⚠️ 제한 사항

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

 

 

👀 입출력 예

numbers result
"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067

❇️ 나의 풀이

  • 먼저 각 숫자를 영어로 표현한 배열을 생성하고, forEach로 각 아이템을 돌면서 함수를 실행한다.
  • 만약 numbers가 eng값을 포함하고 있다면, numbers의 eng라는 모든 값은 eng의 index로 치환한다.
  • 출력은 문자형이 아닌 숫자형이므로 numbers를 숫자형으로 변환한 값을 반환한다.

 

function solution(numbers) {
    var english = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    english.forEach((eng, idx) => {
        if (numbers.includes(eng)) {
            numbers = numbers.replaceAll(eng, idx)
        }
    })
    return Number(numbers)
}