[프로그래머스 연습] 수식 최대화 (Python)
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/67257
코딩테스트 연습 - 수식 최대화
IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과
programmers.co.kr
from itertools import permutations
def calc(priority, n, expression):
if n == 2:
return str(eval(expression))
if priority[n] == '*':
res = eval('*'.join([calc(priority, n + 1, e) for e in expression.split('*')]))
if priority[n] == '+':
res = eval('+'.join([calc(priority, n + 1, e) for e in expression.split('+')]))
if priority[n] == '-':
res = eval('-'.join([calc(priority, n + 1, e) for e in expression.split('-')]))
return str(res)
def solution(expression):
answer = 0
priorities = (list(permutations(['*','-','+'], 3)))
for priority in priorities:
res = int(calc(priority, 0, expression))
answer = max(answer, abs(res))
return answer
from itertools import permutations
def solution(expression):
operators = ["*", "+", "-"]
answer = []
for oper in permutations(operators, 3):
a = oper[0]
b = oper[1]
tmp_list = []
for i in expression.split(a):
tmp = [f"({j})" for j in i.split(b)]
tmp_list.append(f"({b.join(tmp)})")
answer.append(abs(eval(a.join(tmp_list))))
return max(answer)
728x90
반응형
'Coding Test Prep' 카테고리의 다른 글
[프로그래머스 연습] 더 맵게 (Python) (0) | 2021.10.02 |
---|---|
[프로그래머스 연습] 두 정수 사이의 합 (Python) (0) | 2021.09.11 |
[프로그래머스 연습] 올바른 괄호 (Python) (0) | 2021.09.11 |
[프로그래머스 연습] 오픈채팅방 (Python) (0) | 2021.09.11 |
[프로그래머스 연습] 문자열 압축 (Python) (0) | 2021.09.04 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스 연습] 더 맵게 (Python)
[프로그래머스 연습] 더 맵게 (Python)
2021.10.02 -
[프로그래머스 연습] 두 정수 사이의 합 (Python)
[프로그래머스 연습] 두 정수 사이의 합 (Python)
2021.09.11 -
[프로그래머스 연습] 올바른 괄호 (Python)
[프로그래머스 연습] 올바른 괄호 (Python)
2021.09.11 -
[프로그래머스 연습] 오픈채팅방 (Python)
[프로그래머스 연습] 오픈채팅방 (Python)
2021.09.11