Programming/Algorithm
[Python][프로그래머스] 수식 최대화
euphoria0-0
2020. 7. 11. 15:13
#2020카카오인턴십 문제
from re import split
from itertools import permutations
lst = permutations(['*','+','-']) # 연산자 순열
def solution(expression):
answer = 0
for l in lst:
num = split('[*+-]',expression) # 숫자 배열
opr = split('[0-9]+',expression)[1:-1] # 연산자 배열
# stack을 이용해 우선 연산자 계산
for x in l[:2]:
while x in opr:
idx = opr.index(x)
tmp = num[idx]+opr[idx]+num[idx+1]
num[idx] = str(eval(tmp))
num.pop(idx+1)
opr.pop(idx)
# 마지막 계산
tmp = ''
for i in range(len(opr)):
tmp += num[i] + opr[i]
tmp = abs(eval(tmp + num[-1]))
# 최종 값(절댓값)이 가장 큰 것을 찾음
if tmp > answer:
answer = tmp
return answer