[Python] 백준 / silver / 잃어버린 괄호

김상우·2021년 9월 30일
0

문제 링크 : 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)
profile
안녕하세요, iOS 와 알고리즘에 대한 글을 씁니다.

0개의 댓글