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의 맨 앞에 올 수 없습니다.
∙ 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메서드를 이용해서 한 줄로 쓰는 방법도 있군요!
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "문자열 내 마음대로 정렬하기" (1) | 2022.12.05 |
---|---|
프로그래머스 Lv.1 "예산" (1) | 2022.12.05 |
프로그래머스 Lv.1 "세균 증식" (1) | 2022.12.02 |
프로그래머스 Lv.1 "시저 암호" (1) | 2022.12.01 |
프로그래머스 Lv.1 "공 던지기" (1) | 2022.11.29 |
댓글