히든 넘버_8595

박상민·2023년 11월 15일
0

백준

목록 보기
16/36
post-thumbnail

문제

단어에 숫자가 숨어있다. 이 숫자를 히든 넘버라고 한다. 알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때, 모든 히든 넘버의 합을 구하는 프로그램을 작성하시오.

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

연속된 숫자는 한 히든 넘버이다.
두 히든 넘버 사이에는 글자가 적어도 한 개 있다.
히든 넘버는 6자리를 넘지 않는다.
입력
첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다.

출력

입력으로 주어진 단어에 숨어있는 모든 히든 넘버의 합을 출력한다. 만약, 히든 넘버가 없는 경우에는 0을 출력한다.

예제1

예제 입력 1

14
ab13c9d07jeden

예제 출력 1

29

문제 접근

단어에 숫자가 숨어있는데 이 숫자를 문제에서는 히든 넘버라고 정의하고 있다.
이 히든넘버는 아래와 같은 성질을 가진다.

  1. 연속된 숫자는 한 히든 넘버이다.
  2. 두 히든 넘버 사이에는 글자가 적어도 한 개 있다.
  3. 히든 넘버는 6자리를 넘지 않는다

이 히든 넘버를 구하기 위해서는 기본적으로 단어를 처음부터 끝까지 탐색해야 한다.
이떄 문자열에 숫자면 숫자를 그대로 저장하고 문자면 공백을 저장한다.
새로 저장된 문자열에 split() 함수를 적용하여 공백을 뺸 히든 넘버들을 각각 구해서 그합을 출력한다.

n = int(input())
word = list(input())
d = '0123456789'
hiddenNum = ''
for w in word:
    # 숫자면 저장하고
    if w in d:
        hiddenNum += w
    # 문자면 공백저장
    else:
        hiddenNum += ' '

# 공백을 뺀 각 히든 넘버들의 합을 출력
print(sum(list(map(int, hiddenNum.split()))))



profile
I want to become a UX Developer

0개의 댓글