알고리즘

프로그래머스 Level 1 - 숫자 문자열과 영단어

또롱또 2022. 5. 26. 19:27
728x90

https://programmers.co.kr/learn/courses/30/lessons/81301

function solution(s) {
    // 정답을 담을 변수
    var answer = 0;
    // 알파벳과 숫자들을 관리할 배열
    let alphabet = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    let number = [0,1,2,3,4,5,6,7,8,9];
    
    // s로 들어온 값이 숫자가 아니면 계속 true
    do{
        // 알파벳이나 배열 길이만큼 돌린다. 둘중 누구던 상관없다.
        for(let i = 0; i<alphabet.length;i++){
            // 받아온 문자열을 replace()를 이용해서, 알파벳을 변경한다.
            s = s.replace(alphabet[i],number[i]);
        }
    }while((isNaN(s)))
    
    // 나온 문자열을 숫자열로 변경해서 정답에 넣는다.
    answer = Number(s);
    return answer;
}

받아온 값에 들어있는 숫자가 문자로 되어있으면, 숫자로 변경해야하는 문제.

replace를 이용해서 풀어냈다.

 

정답코드는 거의 비슷하지만,  split을 이용해서, 문자열을 검사해냈고,

문자열을 발견하면 split으로 분리를 한다음 그 index를 join을 이용해 끼워주었다.

function solution(s) {
    let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    var answer = s;

    for(let i=0; i< numbers.length; i++) {
        let arr = answer.split(numbers[i]);
        answer = arr.join(i);
    }

    return Number(answer);
}
728x90