백준 1541 | 잃어버린 괄호 (그리디 알고리즘)

한종우·2021년 11월 29일
0

알고리즘

목록 보기
27/38

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

문제

  • 세준이는 양수와 +, - 그리고 괄호를 가지고 식을 만들었다.
  • 그리고 나서 세준이는 괄호를 모두 지웠다.
  • 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
  • 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오
  • 식은 0 ~ 9, +, - 만으로 이뤄져 있다.
  • 가장 처음과 마지막 문자는 숫자이다.
  • 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다.
  • 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.

문제 접근 방법

  • 최솟값을 만들기 위해서 가능한 가장 큰 수를 뺄 수 있도록 힌다.
  1. - 기호를 기준으로 문자열을 나눈다.
  2. - 기호를 만나고 다음 마이너스까지 중간 수를 모두 더해서 한번에 빼준다.

코드

import sys

equation = sys.stdin.readline().strip().split('-')

result = 0

for i in equation[0].split('+'):
    result += int(i)

for i in equation[1:]:
    for j in i.split('+'):
        result -= int(j)

print(result)

0개의 댓글