[백준][python] 1541번: 잃어버린 괄호
1541번: 잃어버린 괄호
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력 조건
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고,
가장 처음과 마지막 문자는 숫자이다.
그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다.
수는 0으로 시작할 수 있다.
입력으로 주어지는 식의 길이는 50보다 작거나 같다.
출력 조건
첫째 줄에 정답을 출력한다.
첫 번째 시도 .
n=input()
number = []
sign = []
num=0
for i in n:
if i == "+":
sign.append('+')
number.append(num)
num=0
continue
if i == "-":
sign.append('-')
number.append(num)
num = 0
check = True
continue
num*=10
num+=int(i)
number.append(num)
if '-' in sign:
start = sign.index('-') +1
print(sum(number[:start]) - sum(number[start:]))
else:
print(sum(number))
»intput
55-50+40
»output
-35
success
🌝 Thinking
규칙!
** ( - ) 부호가 처음 시작한 지점만 찾으면 된다.**
왜냐하면 ( - ) 부호 뒷 부분은 괄호를 이용하여 모두 음수로 만들 수 있기 때문이다.
- sign(리스트)에 부호를 담고 number(리스트)에 숫자를 담는다.
- ( - ) 부호가 최초로 등장했을때의 위치를 기준으로 앞의 수에서 뒤의 수를 빼면 된다.
💡 깨달은 점.
-
댓글남기기