https://www.acmicpc.net/problem/1541
식에 괄호를 쳐서 식의 답이 최소가 되도록 하는 문제다.
어떻게 괄호를 쳐야 답이 최소가 될까?
예시를 한번 보겠다.
55-50+40
->
55-(50+40): 최소
곰곰히 생각해보면, - 뒤에 있는 값들을 더해서 앞의 값과 -를 해야 값이 최소가 될 수 있다.
그렇기 때문에 식을 받고 -를 기준으로 나눈다.
-를 기준으로 분리 -> ['55','50+40']
이후 나눠진 값들을 활용해서 계산을 하면 끝난다.
첫 값에 그 후 값들을 -하면 된다.
그런데 첫 값이 -일 경우도 생각해야하기 때문에, 첫 값이 -이면 그에 따라 계산을 한다.
n = str(input())
m = n.split('-')
arr = []
result = 0
for num in m:
temp = num.split('+')
hap = 0
for i in temp:
hap += int(i)
arr.append(hap)
if n[0] == '-': #-로 시작할 경우
result -= arr[0]
else: #+로 시작할 경우
result += arr[0]
for i in arr[1:]:
result -= i
print(result)
'백준' 카테고리의 다른 글
[백준] 1389번: 케빈 베이컨의 6단계 법칙 (0) | 2024.12.20 |
---|---|
[백준] 21736번: 헌내기는 친구가 필요해(파이썬) (1) | 2024.12.12 |
[백준] 25193번: 곰곰이의 식단 관리 (파이썬) (2) | 2024.12.04 |
[백준] 7576번: 토마토 (파이썬) (0) | 2024.12.01 |
[백준] 14940번: 쉬운 최단거리 (파이썬) (2) | 2024.12.01 |