코딩테스트/JavaScript

[코딩테스트] 숫자만 추출

CODE_PLAN 2023. 12. 23. 20:20

나의 풀이 1)

 function solution(str) {
            let answer = "";
            str = str.replaceAll("[^0-9]", '');
            // console.log(str)
            return str ;
        }
        let str = "g0en2T0s8eSoft";
        console.log(solution(str));
</script>

 

나의 풀이는 replaceAll을 이용해서 0-9 숫자가 아닌것은 모두 ' ' 빈문자열로 만들고 나머지 str을 출력하는것인데 출력이 잘 안되었었다

수정후 풀이2) 

   function solution(str) {
            let answer = "";
            str = str.replaceAll(/[^0-9]/g, '');
            // console.log(str)
            return str;
        }
        let str = "g0en2T0s8eSoft";
        console.log(solution(str));
    </script>

 

replaceAll 부분의 안 내용부분을 /[^0-9]/g 이렇게 수정해주니까 풀렸다.. replaceAlll 의 문법공부의 필요성!.

 

해설 정답풀이

<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>

풀이 포인트1) isNaN을 사용해서 숫자인지 아닌지를 판별
- isNaN 은 true 일때 숫자가 아닌거고 false 일때 숫자인것 

 

풀이 포인트2) parseInt로 출력된 ex) 000234 이렇게 되어있으면 parseInt로 000를 없애주고 234로 출력한다.

 

+ tip) 손 코딩 문제가 나올수있으니 예를들면 parseInt 를 사용하지마라 이렇게 제시가 왔을때는 Number를 사용해서 풀어보기도하고 준비해야될것 같다.