Dragonball Online Goku Hand
본문 바로가기
알고리즘 도장깨기

프로그래머스 Lv.1 "영어가 싫어요"

by 별의 코비 2022. 12. 5.
728x90

🔥 Programmers Lv.1 : 영어가 싫어요


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

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


👉🏻 My answer

function solution(numbers) {
    const english = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    
    for(let i = 0; i < english.length; i++){
      //split을 english[i] 기준으로 자르고 잘린곳에 i합하기
        numbers = numbers.split(english[i]).join(i)
    }
    
      //split은 문자열이라 Number로 형 변환
    return Number(numbers)
}
: 주석을 참고해주세요!


👉🏻 Another ways

var solution=n=>Number(['zero','one','two','three','four','five','six','seven','eight','nine'].reduce((t,s,i)=>t.replaceAll(s,i),n))
: 이렇게 reduce메서드와 replace메서드를 이용해서 한 줄로 쓰는 방법도 있군요!

댓글