계발하는 개발자

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

🖥 Computer Science/Algorithm

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

dev_genie 2023. 11. 21. 14:47

⚙️ 문제 설명


⚠️ 제한 사항


🔃 입출력


📜 입출력 예 설명


🧠 나의 풀이

function solution(numbers) {
    let str = ["zero", "one", "two", "three", "four", "five", "six",
                "seven", "eight", "nine"];
    str.forEach((x,i) => {
        numbers = numbers.replaceAll(x,i);
    });
    return Number(numbers);
}

 

🧐 풀이 설명

먼저 주어진 numbers 문자열을 목표한 값을 담고있는 각 배열 요소로 쪼개기 쉽지 않기 때문에

str 이라는 문자열 배열을 담고있는 임의의 변수를 만들어줬다.

그리고 str 배열의 각 요소를 x라고 했을 때 numbers 문자열에서 이 x라는 부분과 매칭되는 부분을 찾고 그것을 배열 인덱스가 저장된 i로 변경해줬다.

그러면 "1234.." 이런식으로 numbers 값이 변경될건데, 출력시켜야 하는건 숫자니까

Number(numbers)로 숫자로 변환해서 결과를 출력해줬다.

 

replace 메서드를 대신 써도 되는데 이때는 문자열 안에 중복된 값이 있을까봐 g 플래그 안쓰려고 replaceAll 을 써줬다. 

 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120894

LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!