![article thumbnail image](https://blog.kakaocdn.net/dn/bpvgAo/btq2iqJ7wVm/CCu0evH3SHfKveNCV3nQe0/img.png)
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 했다는 점이다.
첫번째 - 가 나올때 까지는 다 더해주고 그 다음은 다 빼준다는 알고리즘은 똑같다.
'Algorithm' 카테고리의 다른 글
백준 알고리즘 파이썬(Python) 19598번 최소 회의실 개수 (0) | 2021.04.15 |
---|---|
백준 알고리즘 파이썬(Python) 2217번 로프 (0) | 2021.04.14 |
백준 알고리즘 파이썬(Python) 14916번 거스름돈 (0) | 2021.04.14 |
백준 알고리즘 파이썬(Python) 2141번 우체국 (0) | 2021.04.11 |
백준 알고리즘 파이썬(Python) 1931번 회의실 배정 (0) | 2021.04.11 |