문제
풀이방법
괄호를 가지고 연산의 최솟값을 만들기 위해서는 - 다음 덧셈 부분을 전부 묶어주면 된다.
ex) 50-40+45라는 입력이 들어왔을 때, 50-(40+45)로 묶으면 된다.
ex) 50+10-40+45+35-25+35라는 입력이 들어왔을 때, 50+10-(40+45+35)-(25+35)
풀이방법을 토대로 한 알고리즘이다.
1. - 로 나눈다.
아까 전 50-40+45+35-25+35가 있다면 ['50+10', '40+45+35', '25+35']가 된다.
2. 첫 부분은 괄호로 묶어도 의미가 없으니 첫 부분(50+10)은 전부 더한 뒤 sum에 저장한다.
3. 나머지 부분(40+45+35, ...) 은 전부 더한 뒤 sum에서 빼준다.
코드
import sys
input = sys.stdin.readline
arr = input().split('-')
sum = 0
for i in arr[0].split('+'):
sum += int(i)
for i in arr[1:]:
for j in i.split('+'):
sum -= int(j)
print(sum)
'백준 문제 풀이 > 수학' 카테고리의 다른 글
6064 카잉 달력 (python) (3) | 2024.07.16 |
---|---|
1193 분수찾기 (python) (0) | 2024.07.02 |
15829 Hashing (python) (0) | 2024.06.27 |
11050 이항 계수 1 (python) (0) | 2024.06.26 |
2738 행렬 덧셈 (python) (0) | 2024.06.26 |