📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 1541 잃어버린 괄호 문제 풀이

Written by Donghak Park

문제 출처 :www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

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

www.acmicpc.net


문제 해석 : 계산의 우선순위를 변경하여 가장 작은 값을 결과로 가지도록 하는 문제이다. 즉 최대한 큰 수로서 - 연산을 진행하도록 하는 것이다.

 

문제 풀이 :  입력되는 문자열을 파싱하는 것을 시작으로 "-"를 기준으로 나누어 최대값으로 생성하고 그 뒤에 "-" 연산을 진행하게 되면 가장 작게 만들 수 있다.

 

가능한 다른 풀이 : 모든 경우를 생각해볼 수 있지만 비효율적일 수 있다. (ex, permutation을 통한 모든 순서 조정)

-> 여기서는 +와 - 연산 밖에 없기 때문에 좋지 않다.

 


풀이 코드

S = input().split('-')

answer = 0

for element in S[0].split('+'):
    answer += int(element)

for element in S[1:]:
    for sub in element.split('+'):
        answer -= int(sub)

print(answer)

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.