코드
import sys
input = sys.stdin.readline
expr = input().rstrip()
expr_split = expr.split('-')
ans = 0
for i in range(len(expr_split)):
e_ans = sum(map(int, expr_split[i].split('+')))
if i == 0:
ans += e_ans
else:
ans -= e_ans
print(ans)
결과
풀이 방법
- 주어진 식에서 괄호를 사용하여 최소값이 되게 하려면, 음수 뒤에 나오는 양수끼리의 덧셈을 괄호로 묶어야 한다.
- 즉, '-'가 나오면 괄호를 열고, 다시 '-'가 나오면 그 앞에 괄호를 닫는다.
- 예를 들어,
3+2-10-2-3+4
의 경우 3+2-(10)-(2)-(3+4)
가 최소값이다
- 이를 구현하려면 주어진 식을 '-'을 기준으로 split하여 여러 개의 덧셈식 혹은 단항으로 나눈 다음, 첫 번째 것만 ans에 더하고 나머지는 모두 계산하여 ans에서 빼주면 된다.