[프로그래머스] Lv.1 숫자 문자열과 영단어

Miro·2022년 7월 9일
0
post-thumbnail

프로그래머스 Lv.1 숫자 문자열과 영단어(2021 카카오 채용연계형 인턴십)

문제


제한사항과 입출력

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function solution(s) {
    let result = 0;
    
    s = s.replace(/zero/gi, '0');                                                        
    s = s.replace(/one/gi, '1');
    s = s.replace(/two/gi, '2');
    s = s.replace(/three/gi, '3');
    s = s.replace(/four/gi, '4');
    s = s.replace(/five/gi, '5');
    s = s.replace(/six/gi, '6');
    s = s.replace(/seven/gi, '7');
    s = s.replace(/eight/gi, '8');
    s = s.replace(/nine/gi, '9');
    
    result = parseInt(s);
    
    return result;
}
cs

처음 문제를 보고 문자열 s에서 특정 문자열을 찾아서 내가 원하는 문자열로 바꾸면 된다고 생각했다.
그래서 .replace() 메소드를 사용하여 각 숫자에 대한 문자들을 숫자로 바꾸어 주었다.
그 후에 parseInt로 문자열 s를 정수로 바꾸어주고 값을 return 하였다.

결과 : 성공

다른 사람의 풀이

1
2
3
4
5
6
7
8
9
10
11
12
function solution(s) {
    let numbers = ["zero""one""two""three""four""five""six""seven""eight""nine"];
    let answer = s;
 
    for(let i=0; i< numbers.length; i++) {
        let arr = answer.split(numbers[i]);
        answer = arr.join(i);
    }
 
    return Number(answer);
}
 
cs

가장 많은 좋아요를 받은 다른 사람들의 풀이이다.
numbers를 순회하면서 .split()을 사용하여 ' i '번째 문자열을 자르고, .join()을 사용하여 숫자를 채워 주는 코드였다.

profile
프론트엔드 개발자(진)

0개의 댓글