arr = input().split("-")
round = []
for i in arr :
sub = list(map(int, i.split("+")))
round.append(sum(sub))
sum = round[0]
for i in round[1:] :
sum -= i
print(sum)
https://www.acmicpc.net/problem/1541
문제정리
+-로 이뤄이진 식에서 괄호를 적절히 쳐서 최소로 만드는 값을 찾는 문제
풀이과정
최소값을 만들기 위해서는 가장 큰 값을 뺴줘야한다고 생각하였다.
즉 -뒤에는 최대한 더할수있는 수를 더해 뺼쌤을 해줘야한다고 생각했다.
그러기 위해서 -뒤에는 열린 괄호가 존재하여한다고 생각하였다.
문제는 닫히는 괄호였다. 어디까지 더해야 큰값을 뺄수있을까?
만약에 열린괄호이후에 -가 나오면 값이 음수가 될 수 있지 않을까와 겹쳐져서
이제 어디에 괄호를 어떻게 처리할지, 즉 어떻게 구현할지에 대해 고민할 차례였다.
생각해보니 괄호를 직접 치지않고 split을 이용하여 -로 먼저 구분한 후 +끼리더해줄 경우 괄호를 친것과 같이 구현할 수 있다고 생각하였다.
풀이 후