문제유형
분할정복
문제설명
풀지 못했던 이유
풀이설명
def calc(priority, n, expression):
if n == 2:
return str(eval(expression))
res = None
if priority[n] == '*':
res = eval('*'.join([calc(priority, n+1, e) for e in expression.split('*')]))
elif priority[n] == '-':
res = eval('-'.join([calc(priority, n+1, e) for e in expression.split('-')]))
elif priority[n] == '+':
res = eval('+'.join([calc(priority, n+1, e) for e in expression.split('+')]))
return str(res)
def solution(expression):
order = [('*','-','+'),
('*','+','-'),
('+','*','-'),
('+','-','*'),
('-','*','+'),
('-','+','*')]
out = 0
for priority in order:
out = max(out, abs(calc(priority, 0, expression)))
return out