Algorithm/백준

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

에릭 Kim 2023. 3. 30. 10:36
반응형

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

소스코드

 

 

풀이

문제의 핵심은 '-'를 만나기 전의 수들을 총합에 더해줘야 하며, '-'를 만난 이후의 수들을 총합에서 빼줘야 한다는 점입니다.

 

파이썬에는 split()이라는 함수가 있습니다. split()함수를 사용하여, '-'를 기준으로 입력 값을 나눕니다. 

나눈 값이 또다시 연산으로 되어 있을 수 있기 때문에 그 값을 '+'를 기준으로 다시 한번 나눠줍니다.

나눠 준 후에는 그 값들을 모두 총합에 더해주는데, 이때 int 값(정수)로 바꿔서 더해줘야합니다. 

 

'-' 이후의 값들을 다 빼줘야합니다. 이후의 값들 또한 위에서 한 거처럼 '+'를 기준으로 나눠줍니다.

이 때 '-'가 또 있을 수 있지 않냐는 생각이 들 수 있지만 괄호를 치는 문제이기 때문에 저희는 괄호 앞에 '-'가 이미 적용되어 있습니다. 그렇기에 '+'로만 나눠주더라도 똑같이 '-'가 적용될 수 있습니다 ! 

 

이렇게 총합을 구해주시면, 그 값이 최소값이 됩니다 ! 

반응형