1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net


제일 작은 결과가 나오게 해야하므로 처음 -가 나온 뒤는 다 빼주면 된다

  1. 숫자와 기호를 정규식으로 분리 (re 사용)
  2. 마이너스 기호 인덱스 찾기
  3. 마이너스 앞이면 더하고 뒤면 뺌. 없으면 다 더하기
import sys
import re
input = sys.stdin.readline
_input = input().rstrip()
num_list = list(map(int, re.split(r'[\+-]',_input)))
oper_list = list(filter(None, re.split(r'[\d]*',_input)))

# 마이너스 인덱스 구하기
minus_idx = -1
for i in range(len(oper_list)):
    if oper_list[i] == '-':
        minus_idx = i
        break

answer = num_list[0]
for i in range(1, len(num_list)):
    if i <= minus_idx or minus_idx == -1:
        answer += num_list[i]
    else:
        answer -= num_list[i]

print(answer)

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기