https://www.acmicpc.net/problem/1541
그리디 알고리즘을 이용하는 문제로
+, -로 이루어진 식에서 괄호를 이용해 최소의 값을 구하면 되는 문제이다.
제한 사항으로
예제의 입력과 출력을 보고 처음에는 이해가 가지 않았다.
그래서 다른 예제를 만들어 풀고 있다가 깨달았다..😲
이 문제는 정말 간단하게도 -를 제외한 숫자들은 다 더하고
남은 숫자들을 다 뺄셈 처리해주면 된다!!
formula = input()
result = 0
minus_numbers = list()
plus_numbers = list(formula.split("-"))
for number in plus_numbers:
if ("+" in number):
num = list(map(int, number.split("+")))
minus_numbers.append(sum(num))
else:
minus_numbers.append(int(number))
for i in range(len(minus_numbers)):
if (i == 0):
result += minus_numbers[i]
else:
result -= minus_numbers[i]
print(result)
많이 어렵게 푼 것 같긴 하지만 원리만 안다면 쉬운 문제였다.
2021.08.22