본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 8595 히든 넘버 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 24.
728x90
반응형

BaekJoon 백준 8595 히든 넘버 문제는 단어에 숫자가 숨어있다. 이 숫자를 히든 넘버라고 한다. 알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때, 모든 히든 넘버의 합을 구하여 출력하는 문제이다. 문자열, 파싱에 대한 문제로 난이도는 Bronze 1이다.

 

BaekJoon 8595 히든 넘버 문제 정보

출처

- https://www.acmicpc.net/problem/8595

알고리즘 분류

- 문자열 string, 파싱 parsing

난이도

- 브론즈 1 / Bronze 1

 

히든 넘버 문제 요약

  • 단어에 숫자가 숨어있다. 이 숫자를 히든 넘버라고 한다. 알파벳 대/소문자와 숫자(0-9)로 이루어진 단어가 주어진다.
  • 단어와 히든 넘버는 아래와 같은 성질을 갖는다.
    • 연속된 숫자는 한 히든 넘버이다.
    • 두 히든 넘버 사이에는 글자가 적어도 한 개 있다.
    • 히든 넘버는 6자리를 넘지 않는다.
  • 어의 길이 n (1 ≤ n ≤ 5,000,000)
  • 모든 히든 넘버의 합을 구하여 출력한다.

 

문제 풀이 과정

  1. 단어를 입력받고, 단어를 처음부터 끝까지 한 글자씩 탐색한다.
  2. 새로운 문자열에 숫자면 숫자를 그대로 저장하고 문자면 공백을 저장한다. (연속된 숫자는 한 히든 넘버이기 때문)
  3. 새로 저장된 문자열에 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()))))

BaekJoon 백준 8595 히든 넘버 문제를 파이썬 python으로 풀어보았다. 파싱, 문자열에 관한 문제로 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글