[프로그래머스] Lv.0 - 영어가 싫어요

·2023년 4월 24일
0

Programmers

목록 보기
23/30
post-thumbnail

✨ 문제설명

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

🔥 제한사항

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

입출력 예


🌟 내 풀이

function solution(numbers) {
  const obj = {
    zero: 0, one: 1, two: 2, three: 3, four: 4,
    five: 5, six: 6, seven: 7, eight: 8, nine: 9,
  };
  const num = numbers.replace(/one|two|three|four|five|six|seven|eight|nine|zero/g, (v) => {
    return obj[v];
  });
  return Number(num);
}

나도 replace 함수를 사용해 풀었으나, 너무 어린이스러운 풀이인 것 같아서.. 다른사람이 푼 좀 더 성숙한 풀이를 공유한다.

const newStr = str.replace(regexp|substr, newSubstr|function);

위 코드는 replace() 함수 사용 구문으로, 두번째 인자로 콜백함수를 전달할 수 있다는 것을 풀이를 통해 처음 알게되었다. 역시 공식문서를 잘 확인해야 한다..!!
replace() 참고 링크

profile
🎨

0개의 댓글