[Greedy] 잃어버린 괄호

박고은·2023년 5월 1일
0

알고리즘

목록 보기
4/12

s = str(input())

import re
sub, result = [], []
number = [int(n) for n in re.split("[+-]", s)]
operator = [str(n) for n in re.split("[0-9]", s) if n!='']
    
for o in range(len(operator)):
    if operator[o]=='-': sub.append(o)
        
if len(sub)==0: print(sum(number))
        
elif len(sub)==1: print(sum(number)-sum(number[sub[0]+1:])*2)
    
else:
    for m in range(len(sub)-1):
        result.append(sum(number[sub[m]+1:sub[m+1]+1]))
        if m==len(sub)-2: result.append(sum(number[sub[m+1]+1:]))
        
print(sum(number)-(sum(result)*2))

식에서 -의 위치를 배열에 저장하고 - 사이의 모든 +는 더하여 전체 숫자의 합에서 두 번 빼는 방식으로 해결

0개의 댓글