[프로그래머스 연습] 수식 최대화 (Python)
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/67257
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