minhui study

백준 1541번 잃어버린 괄호 (python) 본문

백준 문제풀이/그리디 알고리즘

백준 1541번 잃어버린 괄호 (python)

minhui 2020. 6. 1. 18:54

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

"잃어버린 괄호" 문제는  가장 최소의 결과를 얻는 괄호를 쳐서 최소의 결과를 얻어내야 한다.

즉, 빼기를 할 때 최대한 큰 수를 빼야하므로 '-'뒤에 있는 수를 최대한 크게 만들어야 한다. 

마이너스 기호를 만날 때 다음 마이너스 까지, 다음 마이너스가 없다면 수식의 마지막까지 모든 수를 더해서 한 번에 빼 주면 최소의 결과가 나오게 된다.

만약 '-'가 없으면 모든 숫자를 더한다.

 

<python>

n=input().split('-')
sum=0
for i in n[0].split('+'):
    sum += int(i)
for j in n[1:]:
    for k in j.split('+'):
        sum -= int(k)
print(sum)

 

Comments