[実施]2020 KACA実習-公式最大化
5329 ワード
質問する
の数値と演算子を1つのリストに分離し、各要素をインデックスとして にアクセスします.リスト要素を変更して次のラウンドでインデックスを指定した場合の影響を考慮すると、項目を変更して を削除します.
1
せきぶん
コード#コード#
import re
from itertools import permutations
import copy
def solution(expression):
answer = []
origin_numbers = re.split('[*+-]', expression)
origin_operators = re.split('[0-9]+', expression)[1:-1]
unq_op = list(set(origin_operators))
comb = list(permutations(unq_op))
for case in comb: # 경우의 수
numbers = copy.deepcopy(origin_numbers)
operators = copy.deepcopy(origin_operators)
for op in case: # 연산자 한개
while op in operators:
idx = operators.index(op)
new = eval(str(numbers[idx])+op+str(numbers[idx+1]))
numbers[idx] = new
del operators[idx]
del numbers[idx+1]
answer.append(abs(numbers[0]))
return max(answer)
リファレンス
1
Reference
この問題について([実施]2020 KACA実習-公式最大化), 我々は、より多くの情報をここで見つけました https://velog.io/@ann9902/구현-2020-카카오-인턴십-수식-최대화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol