본문 바로가기

프로그래머스

[알고리즘] 숨어있는숫자의덧셈 (1), (2)

숨어있는 숫자의 덧셈 (1)

 

간단하게 말하면 문자열 my_string 안에있는 숫자 각각의 합을 구하면 된다.

result = 1 + 2 + 3 + 4 = 10.

my_string result
"aAb1B2cC34oOp" 10

 

나의 풀이 : 

function solution(my_string) {
    var sum = 0;
    var array = my_string.split("");
    for(i = 0; i < array.length; i++) {
        if(parseInt(array[i]) == array[i]/1) {
            sum = sum + parseInt(array[i])
        }
    } return sum;
}

반복문을 이용해서 숫자인지 비교를 했고, sum 에 숫자들을 차례대로 더해주어서 비교적 빠르게 풀었다. 

 

숨어있는 숫자의 덧셈 (2)

 

문자열 my_string 안에있는 숫자의 합을 구하되, 34면 3,4 가아닌 34로 더해서 답을 구해야한다.

result = 1 + 2 +34 = 37.

my_string result
"aAb1B2cC34oOp" 37

 

나의풀이:

function solution(my_string) {
    var array = my_string.split("");
    var num = [];
    var sum = 0;
    for(i = 0; i < array.length; i++) {
        if(parseInt(array[i]) == array[i]*1) {
            num.push(array[i]) // 숫자인 요소 num에 Push
        }else {
            num.push(" ") // 숫자아닌 요소 " "으로 num에 Push
        }
    } 
    var num_list = num.join("").split(" ") // 문자열로 만든후 " "를 기준으로 재배열
    for(i = 0; i < num_list.length; i++) {
        if(Number (num_list[i])) {
            sum = sum + parseInt(num_list[i])
        }
    } return sum;
}

반복문을 2번 사용했고 시간이 비교적 오래 걸렸다.