문제

https://school.programmers.co.kr/learn/courses/30/lessons/120864?language=javascript

코드

function solution(my_string) {
    let result = 0;
    
    for(let i = 0; i < my_string.length; i++){
        let tmp = 0;
        while(!Number.isNaN(Number(my_string[i]))){
            tmp += my_string[i];
            // console.log(tmp);
            i++;
        }
        result += Number(tmp);
        console.log(result);
    }
    
    return result;
}

코드 풀이

우선 예외 사항 문자열에 자연수가 없는 경우 0을 return해야하는 부분을 조심해야 합니다.
while문과 Number.isNaN을 활용했습니다.
Number.isNaN은 ECMAScript2015에 추가된 문법입니다.
isNaN 함수는 인수가 Number type이 아닌경우, 그 값을 숫자로 강제합니다.
tmp에다 숫자를 찾으면 하나씩 넣어주고, 붙어있는 숫자를 tmp에 저장합니다. (숫자열 + 문자열 = 문자열) 따라서 tmp에 연결된 숫자 저장합니다. 이후 i 값을 더해주면서 진행했습니다.
원하는 결과값을 얻기 위해 result += Number(tmp)를 활용했습니다. tmp에 임시 저장된 문자형태의 값을 Number(tmp)로 변환 후 result에 더해줍니다. 이후 마지막에 return result를 통해 문제의 답을 도출해낼 수 있습니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글