JS 알고리즘 문제풀이/섹션 3. 문자열 탐색

3.숫자만 추출

crab. 2022. 1. 13. 11:34

📌강의 정리

문자와 숫자가 섞여서 들어온다.

숫자만 뽑아내어 더하여 parseInt하면 앞의 0은 사라진다.

isNaN(x)이면 x가 숫자인지 확인하는 메서드가 있다.

str에서 문자를 하나씩 받아서 isNaN을 x로 받아서 숫자인지 문자인지 if문으로 바로 확인한다.

그래서 나온것을 answer에 누적하여 더하고 parseInt하면 끝이다.

만약 parseInt를 쓰지 말라하면 for문과 if에서 answer에 계속 10을 곱하고 Number(x)로 숫자로 계속 더해가면된다.

수학적인 방법이다.

📌느낀점

나는 전에 봤던 메소드들을 응용하여 풀었는데 강사님은 isNaN으로 한번에 풀었다.

메서드를 쓰는 것이 상당히 의미가 잘통한다 잘알아둬야한다.

하지만 면접에서 메서드없이 수학적인걸 원할수도 있기에 수학적인 방법도 많이 알아둬야 할것같다.

//나의 코드
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(str){
                let answer="";
                str = str.replace(/[^0-9]/g, '').split('');
                for(let i = 0; i<str.length;){
                    if(str[i] !== '0') break;
                    else if(str[i] === '0') str.shift();
                }
                str = str.join('')
                return str;
            }
            
            let str="g0en2T0s8eSoft";
            console.log(solution(str));
        </script>
    </body>
</html>
//강사님 코드
<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(str){
                let answer="";
                for(let x of str){
                    if(!isNaN(x)) answer+=x;
                }  
                return parseInt(answer);
            }
            
            let str="g0en2T0s8eSoft";
            console.log(solution(str));
        </script>
    </body>
</html>

'JS 알고리즘 문제풀이 > 섹션 3. 문자열 탐색' 카테고리의 다른 글

5.문자열 압축  (0) 2022.01.13
4.가장 짧은 문자거리  (0) 2022.01.13
2.유효한 팰린드롬  (0) 2022.01.13
1.회문 문자열  (0) 2022.01.13