
import sys
input = sys.stdin.readline
minus = 0
c = 0
num = ""
n = list(input().rstrip())
for i in range(len(n)):
if n[i] == "-" and minus == 0:
minus += 1
c += int(num)
num = ""
elif n[i] == "-" or n[i] == "+":
if minus >= 1:
c -= int(num)
minus += 1
num = ""
else:
c += int(num)
num = ""
else:
num += n[i]
if minus >= 1:
c -= int(num)
else:
c += int(num)
print(c)
처음에 이렇게 무식하게 구현하였다..
어쨌든 "-"가 등장하면 그 이후로는 모든 숫자를 빼주는 규칙은 알아냈지만 그것을 구현하는 방법을 너무 무식하게 풀어냈는데,
다른 분들의 식을 보면서 더 간단히 구현하는 법을 알아냈다.
일단 split을 이용하여 -를 기준으로 나눠주고,
-를 기준으로 나눈 제일 첫 번째 식은 전부 더해주고, 그 뒤로 -로 나눠진 식들은 전부 빼주면 되는 것이었다.
split을 적절히 이용하여 효율적으로 풀어내는 것이 핵심인 것 같다..
e = input().split('-')
ans = 0
for i in range(1):
ans += sum(map(int,(e[0].split("+"))))
for i in e[1:]:
ans -= sum(map(int,(i.split("+"))))
print(ans)
| [파이썬/python] 백준 28224번 : Final Price (🥉4) (0) | 2023.06.10 |
|---|---|
| [파이썬/python] 백준 4779번 : 칸토어 집합 (🥈3) (0) | 2023.06.10 |
| [파이썬/python] 백준 25501번 : 재귀의 귀재 (🥉2) (0) | 2023.06.03 |
| [파이썬/python] 백준 28135번 : Since 1973 (🥉3) (0) | 2023.06.02 |
| [파이썬/python] 백준 1021번 : 회전하는 큐 (🥈3) (0) | 2023.05.31 |