728x90
https://www.acmicpc.net/problem/1541
괄호를 통해 +, -로만 이루어져 있는 식의 결과 값을 최솟값이 나오게 설계해야하는 문제이다.
사실상 괄호가 해당 식들에게 유의미한 영향을 줄 수 있는게 어떤 것이 있을까 생각했다.
바로 숫자 앞에 붙어있는 '-'를 무효화 할 수 있다는 것.
해당 문제는 만들 수 있는 최솟값을 만드는 것이 목적이므로
숫자 앞에 딸랑 붙어있는 -를 더 강력하게 괄호를 통해 더욱 더 - 값이 커지게 설정이 가능하다는 얘기!
결국 -를 기준으로 문자열을 잘라서 각 문자열들의 합을 크게 만들어야 결과적으로 마이너스가 크다는 얘기.
여기서 질문
맨 처음 잘린 문자열은 해당 문자열 합의 절댓값을 크게 하면 할 수록 불리해지지 않나요?
불리하긴 하다만 +를 괄호로 묶은다 한들 무효화 할 수 있는 방법이 없다.
고로 +를 신경쓰지 말고 문자열을 - 기준으로 자르면 된다.
다만, 주어진 식에 2칙 연산 중 + 밖에 없을 경우 예외 처리를 해줘야한다.
"""
괄호 역할이 사실상 -를 무효화 할 수 있다는 점.
30 - 100 + 55 - 50 + 40
"""
import sys
start = 0
num = []
Eq = input().split('-')
for item in Eq:
temp = list(map(int,item.split('+')))
num.append(sum(temp))
if len(Eq) >= 2:
start = num[0]
num.pop(0)
for i in num:
start -= i
print(start)
else:
print(sum(num))
728x90
'백준 풀이' 카테고리의 다른 글
[백준/BOJ] - 11660번 python 풀이 - dp (1) | 2023.09.18 |
---|---|
[백준/BOJ] - 1043번 python 풀이 - set (0) | 2023.09.13 |
[백준/BOJ] - 1389번 python 풀이 - 케빈 베이컨의 6단계 법칙 (0) | 2023.09.13 |
[백준/BOJ] - 18870번 python 풀이 - 딕셔너리 (0) | 2023.09.11 |
[백준/BOJ] - 1107번 python 풀이 - 브루트포스 (0) | 2023.08.22 |