백준/Python

[백준] 1541 잃어버린 괄호 (python 파이썬)

노랑꼬리 2023. 1. 12. 13:43

문제링크 : https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

작성코드

 

해설

 

괄호, 즉 문자열의 구분을 하여 최소값을 만들어야 한다.

최소값을 만들기 위해서는 괄호를 마이너스로 시작하도록 a-(b+c) 형식으로 만들어주면 가장 작은 값을 만들 수 있다.

 

그러기 위하여 입력받은 값을 split()를 사용하여 - 를 기준으로 나누어 주면 위 식과 같은 형태로 괄호를 칠 수 있게 된다.

 

이제 괄호를 쳤으니 계산만 해주면 되는데

 

괄호 내부의 값들을 split()를 활용해 +로 나누어 더해주면 된다.

 

이때 첫번째 수는 기호가 없으므로 무조건 양수가 되어 +로 계산해준다.

이를 체크하기 위한 first bool값을 만들어주어 확인해준다.

 

첫번째 값은 양수이므로 total에 더해주고

괄호 내부의 값들은 음수의 값이 되므로 total에서 빼주면 정답인 최소값이 나온다.