[BaekJoon/Python] 백준 1541 잃어버린 괄호

김시현 Si Hyeon, Kim·2022년 1월 16일
0

Algorithm

목록 보기
9/9
post-custom-banner

문제 요약 설명

주어진 식에 괄호를 삽입하여 식의 연산결과가 가장 작은 값이 나오도록 하세요

아이디어

-연산자를 이용해서 최대한 큰 값을 빼기 연산을 해야하므로 -연산자를 기준으로 수식을 여러 묶음으로 나눈 뒤 해당 묶음을 전부 더한 값을 빼기 연산을 해주면 된다.

ex) 10 - 20 + 30 - 50 + 20

  • 연산자를 기준으로 묶음으로 나눈다 => [10], [20, 30], [50, 20]
  • 각 묶음은 덧셈이므로 연산을 해준다. [10], [50], [70]
  • 첫번째 묶음에서 나머지 묶음을 다 빼준다. 10 - 50 - 70 = -110

풀이

  1. 수식을 - 연산자를 기준으로 나눈다.(split("-"))
  2. 1번의 결과를 통해 덧셈 연산들 묶음 여러개로 나뉘는데, 각각 덧셈 연산을 진행한다.
  3. 첫번째 묶음에서 나머지 묶음들 값을 전부 빼준다.

코드

import sys
r = sys.stdin.readline

cal = r()

# -를 기준으로 나눠줌
sector = cal.split('-')

number = []

for i in sector :
    plus = i.split('+')
    temp = 0
    for j in plus:
        temp += int(j)
    number.append(temp)

result = number[0]

for i in range(1, len(number)) :
    result -= number[i]

print(result)
profile
최악의 환경에서 최선을 다하자!!
post-custom-banner

0개의 댓글