algorithm/문제

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

유랄라- 2022. 2. 23. 11:59
반응형

https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

⚡️ 문제 설명

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램

 

⚡️ 해결 방법

이 입력을 예시로 설명해보면

55-50+40

1. -기준으로 나누기

n = input().split('-')

2. 1.에서 -를 기준으로 나누었을 때 첫번째 숫자들 모두 더하기

for i in n[0].split('+'):
    sum += int(i)

3. 1.에서 -를 기준으로 나누었을 때 뒤에 있는 숫자들 모두 빼기. ( 뒤에있는 +들은 괄호로 묶어서 모두 합친 뒤 빼는 것과 같다.)

for i in n[1:]:
    for j in i.split('+'):
        sum -= int(j)

⚡️ 코드

import sys
input=sys.stdin.readline

n = input().split('-')
sum = 0
for i in n[0].split('+'):
    sum += int(i)
for i in n[1:]:
    for j in i.split('+'):
        sum -= int(j)
print(sum)
반응형