728x90

https://programmers.co.kr/learn/courses/30/lessons/67257

 

코딩테스트 연습 - 수식 최대화

IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과

programmers.co.kr

from itertools import permutations

def calc(op, n, expression):
    if n == 2:
        return str(eval(expression))
    if op[n] == '*':
        result = eval('*'.join([calc(op, n+1, e) for e in expression.split('*')]))
    if op[n] == '+':
        result = eval('+'.join([calc(op, n+1, e) for e in expression.split('+')]))
    if op[n] == '-':
        result = eval('-'.join([calc(op, n+1, e) for e in expression.split('-')]))
    return str(result)
    
def solution(expression):
    answer = 0
    operations = list(permutations(['*', '+', '-'], 3))
    
    for op in operations:
        result = int(calc(op, 0, expression))
        answer = max(answer, abs(result))
    
    return answer
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기