728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [숨어있는 숫자의 덧셈(1)]

2. 시도해본 것들

처음에는 다음과 같이 코드를 작성했다.

typeof로 체크하여 숫자일 경우 덧셈하면 끝날지 알았는데

문자열 숫자는 문자열로 처리하기에 추가가 되지 않았다.

function solution(my_string) {
     var answer = 0;
     var num = Array.from(my_string);
     for(i=0; i<my_string.length; i++ ){
         if( typeof(num[i]) === 'number' ){
             answer += Number(num[i]);
         }
     }
     return answer;
}

3. 해결과정

isNaN(); (NaN을 가지고 있는지에 따라 true, false를 반환하는 함수)

이것을 이용해서 배열값이 숫자를 가지고 있는지 없는지를 판단하도록 했다.

4. 알게 된 점

 

나의 문제풀이

function solution(my_string) {
    var answer = 0;
    var num = Array.from(my_string); 
    for(i=0; i<my_string.length; i++ ){
        if( isNaN(Number(num[i])) == false ){ 
            answer += Number(num[i]); 
        }
    }
    return answer;
}

배열값을 숫자화 시킨다음 isNaN인지 판단한다.

true면 당연히 숫자가 아니므로 넘겨야하고,

false면 숫자이기에 answer에 더해주면 된다.

 

 

남의 문제풀이

function solution(my_string) {
    return my_string.match(/[0-9]/g).reduce((a,b) => parseInt(a)+parseInt(b));
}

정규식을 이용한 풀이방법..내겐 어렵다..ㅠㅠ

728x90
반응형

+ Recent posts