[백준] 히든넘버

letsbebrave·2022년 6월 23일
0

codingtest

목록 보기
138/146

문제

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

개념

isdigit() 함수는 특정 문자열의 모든 문자가 숫자인지 확인하는 데 사용됩니다. 모든 문자가 숫자인 경우 True 값을 반환합니다.

x = "666"
y = x.isdigit()
print(y) # True

isnumeric() 함수는 isdigit() 함수와 유사한 방식으로 작동하며 주어진 문자열의 모든 문자가 숫자인 경우 True 값을 제공합니다.

x = "666"
y = x.isnumeric()
print(y)

역순 정렬

for i in tmp[::-1]:

풀이

# 입력으로 주어진 단어에 숨어있는 모든 히든 넘버의 합
# 히든 넘버가 없는 경우에 0 출력
import sys
input = sys.stdin.readline

n = int(input())
word = input()
tmp = []
for w in word:
    if w.isdigit():
        tmp.append(w)
    else:
        tmp.append('!')

stack = ['0']
for t in tmp:
    if t.isdigit():
        if stack[-1].isdigit(): # 스택에 저장된 마지막 원소가 숫자일 때
            stack[-1] = stack[-1] + t # 마지막 숫자에 숫자문자열 더해주기
        else: # 스택에 저장된 마지막 원소가 !일 때
            stack.append(t) # 그냥 숫자만 append
    else:
        stack.append(t) # !일 땐 그냥 append

ans = 0
flag = False
for i in stack:
    if i != '!':
        ans += int(i)
        flag = True

if not flag:
    print(-1)
else:
    print(ans)
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글