백준 1541 잃어버린 괄호
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| import sys from collections import deque
sen =sys.stdin.readline().rstrip() sentence = deque([i for i in sen]) numbers,op=[],[]
temp='' while sentence: x = sentence.popleft() if 48<=ord(x)<=57: temp+=x else: numbers.append(int(temp)) temp='' op.append(x) numbers.append(int(temp))
op=deque(op) flag=True res,idx=0,9999
for i in range(len(op)): if op[i]=='-': idx=i break
if idx==9999: print(sum(numbers)) else: print(sum(numbers[0:idx+1])-sum(numbers[idx+1:len(numbers)]))
|
- 문제를 똑바로 읽을 것
- 생각을 좀 더 깊이 할 것
괄호를 쳐서 이 식의 값을 최소로 만들려면, -가 등장한 후 모든 값이 음수가 되면 된다.