본문 바로가기
Algorithm

[백준] 1541번: 잃어버린 괄호(그리디 알고리즘) - Python

by Baest 2022. 3. 3.

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

[문제유형]

- 그리디 알고리즘

 

 

[문제]

 

[제출한 코드 및 풀이]

- 값을 최소로 만들기 위해서는 예제에서 - 를 만날 경우 다음 - 까지를 괄호로 묶어야 한다.

- 그러기 위해서 input을 받으며 -를 기준으로 분리시킨다. ex) ["50", "50+40"]

- formula의 0번째 리스트 값을 answer에 계속 더해준다. (-를 만나기 전까지)

 

- 그 이후 formula의 1번째 리스트부터 반복해서 그 내부의 값들을 answer 에서 빼준다.

 

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

answer = 0

for i in formula[0].split("+"):
    answer += int(i)
    
for i in formula[1:]:
    for j in i.split("+"):
        answer -= int(j)

print(answer)