문제풀이/기타

[파이썬] Pro 수식 최대화

승무_ 2024. 1. 12. 20:54

문제

https://school.programmers.co.kr/learn/courses/30/lessons/67257?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드

from copy import deepcopy

def operation(num1, num2, op):
    if op == '+':
        return str(int(num1) + int(num2))
    if op == '-':
        return str(int(num1) - int(num2))
    if op == '*':
        return str(int(num1) * int(num2))

def solution(exp):
    answer = 0
    
    seq=['*-+','*+-','-*+','-+*','+*-','+-*']

    arr=[]
    temp=""
    for i in exp:
        if i.isdigit():
            temp+=i
        else:
            arr.append(temp)
            arr.append(i)
            temp=""
    arr.append(temp)
    
    
    for s in seq:
        temp=deepcopy(arr)
        for i in s:
            stack=[]
            while len(temp)!=0:
                tmp=temp.pop(0)
                if i==tmp:
                    stack.append(operation(stack.pop(), temp.pop(0), i))
                else:
                    stack.append(tmp)
            temp=deepcopy(stack)
        answer=max(answer,abs(int(temp[0])))
    
    
    return answer