728x90

 


이 문제의 핵심은 

최초로 마이너스가 나오기 전까지 나오는 숫자는 모두 더해주며, 이후 마이너스가 나오는 순간부터 모조리 다 빼준다.

num = input().split('-') #마이너스를 기준으로 split 해준다.
min_num = 0
for i in range(len(num)): 
    if i == 0:
        min_num = eval(num[0]) #처음 - 가 나올때 까지 모두 더해준다.(eval 안에 식이 모두 더하기이므로)
    else:
        min_num = min_num - eval(num[i]) # 그 이후 모든 값들을 다 빼준다.
print(min_num)

 

처음 내가 푼 코드는 이러하다. 

 

하지만 무슨일인지 런타임 에러 (SyntaxError) 가 계속 난다.......... 아직 해결하지 못했다 아시는 분은 좀 알려주세요..

그래서 다른 방법으로 풀어봤다


s = input().split('-')

sum = 0
for i in s[0].split('+'):
    sum = sum + int(i)

for i in s[1:]:
    for j in i.split('+'):
        sum = sum - int(j)
print(sum)

첫번째 코드(런타임 에러 코드) 와의 차이점은 이번 코드는 모든 숫자를 다 split 했다는 점이다. 

첫번째 - 가 나올때 까지는 다 더해주고 그 다음은 다 빼준다는 알고리즘은 똑같다.

복사했습니다!