개발 연습장/백준 문제풀이

[파이썬, Python] 백준 1541: 잃어버린 괄호

LooanCheong 2023. 7. 5. 11:27
반응형

문제

https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

코드

exp = input().split('-')
ans = 0

for i in exp[0].split('+'):
    ans += int(i)
    
for i in exp[1:]:
    for j in i.split('+'):
        ans -= int(j)
    
print(ans)

설명

식의 값이 최소가 되려면 최대한 큰 값을 빼주어야 한다.

즉, '-' 뒤의 모든 + 값을 괄호로 묶어주면 된다.

[3 + 5 - 7 + 2 + 8 - 4]
이런 식이 있다고 가정하자.
그렇다면 7과 2와 8을 묶어서 빼주는 게 가장 작은 답이 도출된다.
(3+5), -(7+2+8), -(4)

마이너스를 기준으로 나누어주고 첫 마이너스가 오기 전까지의 수는 다 더해준다.
그리고 그 이후의 수는 다 빼주면 간단하게 답을 도출할 수 있다.

반응형