와 진짜 오랜만에 글쓴다
아무튼 그게 중요한게 아니라 집중못하고 계속 문제 삽질하다가
문득 뇌리에 환상적인 코드가 스치면서 풀이 성공..;;
뭐하러 split()
놔두고 손수 파싱했는지 모르겠고.. 또 그걸 반복문 돌리면서 계산하고 앉아있었다..; 뭐했니 대체. 그러니까 틀리고 시간초과나지.
어쨌든 풀이해보자면,
어차피 맨 앞 숫자는 괄호 상관없이 무조건 양수다.
그 다음부터는 마이너스 부호를 기준으로 괄호를 나눠 최소값을 구할 수 있다.
예를 들어, 1-2+3+4-5+6 라는 수식이 있을 때
1-(2+3+4)-(5+6)와 같이 괄호를 치면 최소값이 된다.
막상 풀어보니 생각보다 난이도 있는 문제는 아니었구나 싶네,,??
구구절절 돌아돌아 작성하던 코드에서 아주 간단하게 바꼈다
import sys
s = sys.stdin.readline().split('-')
if len(s) <= 1:
s = [map(int, s[0].split('+'))]
print(sum(s))
else:
s = [sum(map(int, x.split('+'))) for x in s]
print(s[0] - sum(s[1:]))