백준 문제 풀이/수학

1541 잃어버린 괄호 (python)

한사공사 2024. 7. 6. 00:18

문제

 

풀이방법

괄호를 가지고 연산의 최솟값을 만들기 위해서는 - 다음 덧셈 부분을 전부 묶어주면 된다.

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