[백준] 그리디 알고리즘 - 1541번: 잃어버린 괄호

imyo·2020년 9월 23일
0

알고리즘

목록 보기
23/39
post-thumbnail

잃어버린 괄호


풀이과정

  1. 식을 입력받아 formula라는 문자열로 저장한다.
  2. +연산자로 이어진 숫자들을 괄호로 묶어 계산하면 빼는 값이 최대가 되므로 연산의 결과가 최솟값이 된다.
    ex) (1+2)-(3+4+5)-(6+7)
    그러므로 formula 문자열을 우선 '-' 기준으로 나눠 minus 리스트에 저장한다.
    ex) ['1+2', '3+4+5', '6+7']
  3. minus[0]은 앞에 -연산자가 없으므로 더하고 나머지 minus 원소들은 빼야한다. minus[0]을 '+' 기준으로 나눈 숫자들의 합을 구한 다음 result라는 변수에 저장하고 minus 리스트에서 제거한다. 남은 minus의 원소들을 for문을 돌려 '+' 기준으로 나눈 숫자들의 합을 구해 result에서 뺀다.

Python Code

import sys

formula = sys.stdin.readline().rstrip()
minus = formula.split('-')
result = sum(list(map(int, minus.pop(0).split('+'))))
for i in minus:
    plus = list(map(int, i.split('+')))
    result -= sum(plus)
print(result)
profile
(●⁰౪⁰●)

0개의 댓글

관련 채용 정보