문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 길이가 최대 50인 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다.
출력
첫째 줄에 정답을 출력한다.
str = input().split('-')
num = []
for i in str:
n = 0
numStr = i.split('+')
for j in numStr:
n += int(j)
num.append(n)
ans = num[0]
for i in range(1, len(num)):
ans -= num[i]
print(ans)
코드 설명
주어진 식에서 ‘-‘가 나오면 괄호 시작하고 ‘-‘ 나오기 전까지 괄호를 묶으면 값이 최소화가 되므로 문자열을 ‘-‘로 split한다.
리스트에 담긴 문자열들을 다시 ‘+’로 split한 후에 split된 수들을 더해서 num 리스트에 넣어준다.
처음 받은 숫자에서 num 리스트의 숫자들을 빼주면 식의 값의 최소값을 구할 수 있다.