Problem
https://www.acmicpc.net/problem/1541
Solution
식의 결과를 최소로 만들기
사고과정
어떻게 해야 결과가 최소로 나올까?
빼는 값을 최대로 만들자 (뺄 수 있는 최대로 빼기)
“-“와 인접한수 + ··· + 수
를 모두 묶어서 계산해결방법
“-“로 split하기
eval함수 활용해서 계산예외처리
왼쪽에 0이 n개 붙은 경우? try-except문, lstrip(‘0’) 활용
0으로만 이루어진 수는? 빈 문자열이 되면 0으로
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = input()
b = a.split("-") # '-'를 기준으로 분류
for i in range(len(b)):
try:
b[i] = eval(b[i]) # 문자열로 된 계산식을 계산해서 결과를 저장
except SyntaxError: # 앞에 0이 붙은 경우
tmp = list(b[i].split('+'))
for j in range(len(tmp)):
tmp[j] = tmp[j].lstrip('0') if tmp[j].lstrip('0')!='' else '0' # 요소가 0으로만 된 경우 '0' 반환
b[i] = sum(map(int,tmp))
res = b[0]
for i in range(1, len(b)): # 맨 앞 요소부터 빼나가기
res -= b[i]
print(res)