[백준] 1541번 - 잃어버린 괄호

chanyeong kim·2022년 4월 20일
0

백준

목록 보기
83/200
post-thumbnail

📩 출처

문제

세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.

그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 정답을 출력한다.

👉 생각

  • 주어지는 식에서 적절한 괄호를 쳐서 최소값을 만드는 방법은 -부호가 있다면 그 다음 -부호 사이에 괄호를 치면된다.
  • 처음에는 후위표기법으로 해야하나 구현하는데 애를 먹었는데 생각해보니 입력받을 때 -를 기준으로 split을 하면 쉽게 구현할 수 있는 문제였다..! 감각을 다시 키워야 할듯..ㅜㅜ
def plus(s):
    if '+' in s:
        tmp = s.split('+')
        s = sum(map(int, tmp))
    return int(s)

result = input().split('-')
result = list(map(plus, result))

ans = result[0]
for i in range(1, len(result)):
    ans -= result[i]
print(ans)

0개의 댓글