잃어버린 괄호
풀이과정
- 식을 입력받아 formula라는 문자열로 저장한다.
- +연산자로 이어진 숫자들을 괄호로 묶어 계산하면 빼는 값이 최대가 되므로 연산의 결과가 최솟값이 된다.
ex) (1+2)-(3+4+5)-(6+7)
그러므로 formula 문자열을 우선 '-' 기준으로 나눠 minus 리스트에 저장한다.
ex) ['1+2', '3+4+5', '6+7']
- minus[0]은 앞에 -연산자가 없으므로 더하고 나머지 minus 원소들은 빼야한다. minus[0]을 '+' 기준으로 나눈 숫자들의 합을 구한 다음 result라는 변수에 저장하고 minus 리스트에서 제거한다. 남은 minus의 원소들을 for문을 돌려 '+' 기준으로 나눈 숫자들의 합을 구해 result에서 뺀다.
Python Code
import sys
formula = sys.stdin.readline().rstrip()
minus = formula.split('-')
result = sum(list(map(int, minus.pop(0).split('+'))))
for i in minus:
plus = list(map(int, i.split('+')))
result -= sum(plus)
print(result)