문제
단어에 숫자가 숨어있다.
이 숫자를 히든 넘버라고 한다.
알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때,
모든 히든 넘버의 합을 구하는 프로그램을 작성하시오.
단어와 히든 넘버는 아래와 같은 성질을 갖는다.
연속된 숫자는 한 히든 넘버이다.
두 히든 넘버 사이에는 글자가 적어도 한 개 있다.
히든 넘버는 6자리를 넘지 않는다.
입력
첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다.
둘째 줄에는 단어가 주어진다.
단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다.
출력
입력으로 주어진 단어에 숨어있는 모든 히든 넘버의 합을 출력한다.
만약, 히든 넘버가 없는 경우에는 0을 출력한다.
예제 입력 1
14
ab13c9d07jeden
예제 출력 1
29
let fs = require('fs')
let inp = fs.readFileSync('/dev/stdin').toString().split('\n')
let str = inp[1].split('')
let ans = ''
let num = []
for(let i = 0; i<Number(inp[0]); i++){
if(isNaN(Number(str[i])) !== true){
ans += str[i]
if(i === Number(inp[0])-1){
num.push(ans)
}
}else{
num.push(ans)
ans = ''
}
}
num = num.filter((item) => item !== '')
if(num.length === 0){
console.log(0)
}else {
console.log(num.map(Number).reduce((a,b) => a+b))
}
숫자가 연속으로 있는지 아닌지를 파악해서 연속이 끊겼다면 저장을 시켜주었다
temp에 저장하는 방식으로 구현했다