17.38
import sys
input = sys.stdin.readline
form = list(input().rstrip())
val = 0
prev = '+'
nums = []
for el in form:
if el == '+':
if prev == '+':
val += int(''.join(nums))
elif prev == '-':
val -= int(''.join(nums))
nums.clear()
elif el == '-':
if prev == '+':
val += int(''.join(nums))
elif prev == '-':
val -= int(''.join(nums))
nums.clear()
prev = '-'
else:
nums.append(el)
if prev == '+':
val += int(''.join(nums))
elif prev == '-':
val -= int(''.join(nums))
print(val)
맞긴했는데 너무 마구잡이로 풀어서 코드가 너무 길다!
import sys
input = sys.stdin.readline
form = list(input().rstrip())
val = 0
prev = '+'
nums = []
def cal():
global val
if prev == '+':
val += int(''.join(nums))
elif prev == '-':
val -= int(''.join(nums))
nums.clear()
for el in form:
if (el == '+') or (el == '-'):
cal()
if el == '-': prev = '-'
else:
nums.append(el)
cal()
print(val)
아주 약간의 시간과 코드 라인을 줄였다
실버 그리디는 착하네..^^