배고픈 개발자 이야기
[2021 카카오 인턴] 수식 최대화 본문
728x90
나중에
# "100-200*300-500+20" 60420
import copy
def calculate(prior, tokenizes):
tokenize = copy.deepcopy(tokenizes)
for queue in prior:
i = 1
while queue in tokenize:
if tokenize[i] == queue:
num = 0
if queue == "+":
num = tokenize[i-1] + tokenize[i+1]
elif queue == "-":
num = tokenize[i-1] - tokenize[i+1]
else:
num = tokenize[i-1] * tokenize[i+1]
del tokenize[i+1]
del tokenize[i]
tokenize[i-1] = num
print(i, tokenize)
# toenize resize
i = 1
else:
i += 2
if tokenize[0] < 0:
return -tokenize[0]
return tokenize[0]
def solution(expression):
answer_list = []
priors = []
priors.append(["+", "-", "*"])
priors.append(["+", "*", "-"])
priors.append(["-", "+", "*"])
priors.append(["-", "*", "+"])
priors.append(["*", "-", "+"])
priors.append(["*", "+", "-"])
tokenize, temp = [], ""
for token in expression:
if token in ["+", "-", "*"]:
tokenize.append(int(temp))
tokenize.append(token)
temp = ""
else:
temp += token
tokenize.append(int(temp))
for prior in priors:
answer_list.append(calculate(prior, tokenize))
return max(answer_list)
'알고리즘 문제 > PROGRAMMERS' 카테고리의 다른 글
[2020 kakao blind] 괄호변환 (0) | 2021.08.12 |
---|---|
[2018 kakao blind] 뉴스클러스터링 (0) | 2021.08.10 |
[2018 kakao blind] 다트게임 (0) | 2021.08.01 |
[2018 kakao blind] 비밀지도 (0) | 2021.08.01 |
[2019 kakao blind] 실패율 (0) | 2021.07.31 |
Comments