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

재오·2023년 4월 7일
2

코딩테스트

목록 보기
16/46
post-thumbnail

🗒️ 문제

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

⚠ 제한사항

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

📝 문제 해설

우선 0부터 9까지의 문자를 담은 배열을 하나 만들어 준다. forEach문으로 배열을 모두 순회하며 해당 문자를 index값으로 바꿔주기만 하면 된다. 중요한 점은 배열을 만들 때 "zero" 부터 "nine"까지로 맞추어서 index값이랑 같은 값을 가지도록 하는 것이다.

💡 필요 문법

forEach()

for문과 비슷하지만 속도는 훨씬 빠르다. 첫번째 인자로는 value를, 두번째 인자로는 index를 받는다.

replaceAll()

첫번째 인자를 두번째 인자로 바꾼다. 한번만 수행하는 것이 아니라 배열을 다 순회할 때까지 진행한다.

💻 코드

function solution(numbers) {
    let set = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    
    set.forEach((num, idx) => {
        numbers = numbers.replaceAll(num, idx);
    });
    
    return Number(numbers);
}
profile
블로그 이전했습니다

1개의 댓글

comment-user-thumbnail
2023년 4월 10일

영어 잘하면서~ 영어 좋으면서~

답글 달기