- Reference
- 내 풀이는 항상 너무 어렵게 생각하는 것 같다.
- 처리해 주지 않아도 될 예외 처리들이 너무 많은 것 같아서 고쳐야 될 듯 싶다.
- 따로따로 생각해야 된다는 걸 꼭 기억하자!
Solution
def solution(formula: str) -> int:
# answer = 0
#
# # 그리디니까 오직 마이너스거나 플러스면 바로 리턴해주자
# if '-' not in formula and '+' in formula:
# return sum(map(int, formula.split('+')))
# elif '+' not in formula and '-' in formula:
# minus_formula = list(map(int, formula.split('-')))
# for i in range(len(minus_formula)):
# if i == 0:
# answer = minus_formula[i]
# continue
# answer -= minus_formula[i]
# return answer
#
# # 메인 로직
# # '-'로 분리해서 순서대로 빼주면 됨
# plus_formula = formula.split('-')
# for i in range(len(plus_formula)):
# if i == 0 and '+' not in plus_formula[i]:
# answer = int(plus_formula[i])
# continue
#
# if '+' in plus_formula[i]:
# answer -= sum(map(int, plus_formula[i].split('+')))
# else:
# answer -= int(plus_formula[i])
#
# return answer
# 개킹받아..
answer = 0
minus_formula = formula.split('-')
# 굳이 if로 체크하지 말고 split 할 때, 그 문자가 없으면 얘가 무시해 주니까 바로 하자
# 20번째 줄에서 내가 했던 걸 쉽게 쉽게
for minus in minus_formula[0].split('+'):
answer += int(minus)
# 이렇게 0번째랑 첫번째부터 마지막까지랑 각각 분리해 주는게 깔끔하니 꼭 기억해 두자
for minus in minus_formula[1:]:
for plus in minus.split('+'):
answer -= int(plus)
return answer
formula = input()
print(solution(formula))
Leave a comment