문제 링크 : https://www.acmicpc.net/problem/1541
반례 처리를 꼼꼼히 해야한다고 느꼈던 문제.
최소가 되는 그리디 알고리즘은 잘 적용했지만,
전부 50 + 50 + 50 + 50 과 같이 전부 + 만 사용했을 경우를 고려하지 않았다.
처음으로 -가 나오는 인덱스를 idx에 저장하는 코드를 작성했는데,
초기값을 idx = 0 이 아닌 idx = len(numbers)로 설정해야 했었다.
expression = input() numbers = list(map(int, expression.replace('-', '+').split('+'))) opers = [] for x in expression: if not x.isdigit(): opers.append(x) idx = len(numbers) for i in range(len(opers)): if opers[i] == '-': idx = i break result = 0 for i in range(len(numbers)): if i <= idx: result += numbers[i] else: result -= numbers[i] print(result)