식의 값을 최소로 만드는 방법은 처음으로 -가 나왔을 때, 그 - 뒤의 값은 모두 빼는 것이다.
따라서 입력을 받은 수식에서 첫 번째 -가 몇 번째 인덱스에 존재하는지를 찾고, 그 인덱스를 기준으로 앞의 값은 A, 뒤의 값은 B라고 하자.
그러면 A-B가 수식에서 나올 수 있는 최소 값이 된다. 만약 -이 없다면 식에서 숫자 값들만 추출해준 뒤 그 값들을 모두 더해주면 된다.
풀이
import sys
input = sys.stdin.readline
commands = input()
if commands.find("-") == -1:
nums = list(map(int, commands.split("+")))
print(sum(nums))
else:
index = commands.find("-")
a = commands[:index]
b = commands[(index+1):]
sum_a = sum(list(map(int, a.split("+"))))
sum_b = sum(list(map(int, b.replace("+", "-").split("-"))))
print(sum_a-sum_b)
'알고리즘' 카테고리의 다른 글
[카카오 2024 인턴십 코테] 산 모양 타일링 (0) | 2024.01.17 |
---|---|
[백준][Python 파이썬] 22945번 팀 빌딩 (0) | 2024.01.02 |
[백준][Python 파이썬] 1389번 케빈 베이컨의 6단계 법칙 (2) | 2023.12.05 |
[백준][Python 파이썬] 18870번 좌표 압축 (2) | 2023.12.03 |
[백준][Python 파이썬] 11724번 연결 요소의 개수 (0) | 2023.12.02 |