백준 - 히든 넘버

BooKi·2022년 6월 23일
0

백준

목록 보기
49/64
post-thumbnail

백준 - 히든 넘버

문제

문제

단어에 숫자가 숨어있다. 

이 숫자를 히든 넘버라고 한다. 

알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때,

모든 히든 넘버의 합을 구하는 프로그램을 작성하시오.

단어와 히든 넘버는 아래와 같은 성질을 갖는다.

연속된 숫자는 한 히든 넘버이다.

두 히든 넘버 사이에는 글자가 적어도 한 개 있다.

히든 넘버는 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에 저장하는 방식으로 구현했다

profile
성장을 보여주는 기록

0개의 댓글