programmers.co.kr/learn/courses/30/lessons/67257
코딩테스트 연습 - 수식 최대화
IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 �
programmers.co.kr
2020 카카오 인턴쉽
import collections
def operator(pe,op,oper):
sm = []
operNum = collections.Counter(pe)
if len(oper) == 3:
expression = pe
pe = []
index = 0
for i in range(len(expression)):
if expression[i].isdigit() == False :
pe.append(expression[index:i])
pe.append(expression[i])
index = i+1
if i == len(expression)-1 :
pe.append(expression[index:])
if op == '+':
count = operNum['+']
oper.remove('+')
for i in range(count):
x = pe.index('+')
num1 = pe[x-1]
num2 = pe[x]
num3 = pe[x+1]
del pe[x-1:x+2]
pe.insert(x-1,str(eval(num1+num2+num3)))
if len(pe) == 1:
return pe[0]
if oper[0] == '-':
sm = operator(pe,'-',oper)
elif oper[0] == '*':
sm = operator(pe,'*',oper)
elif op == '-':
count = operNum['-']
oper.remove('-')
for i in range(count) :
x = pe.index('-')
num1 = pe[x-1]
num2 = pe[x]
num3 = pe[x+1]
del pe[x-1:x+2]
pe.insert(x-1,str(eval(num1+num2+num3)))
if len(pe) == 1:
return pe[0]
if oper[0] == '+':
sm = operator(pe,'+',oper)
elif oper[0] == '*':
sm = operator(pe,'*',oper)
elif op == '*':
count = operNum['*']
oper.remove('*')
for i in range(count):
x = pe.index('*')
num1 = pe[x-1]
num2 = pe[x]
num3 = pe[x+1]
del pe[x-1:x+2]
pe.insert(x-1,str(eval(num1+num2+num3)))
if len(pe) == 1:
return pe[0]
if oper[0] == '-':
sm = operator(pe,'-',oper)
elif oper[0] == '+':
sm = operator(pe,'+',oper)
return abs(int(sm))
def solution(expression):
answer = []
answer.append(operator(expression,'+',['+','-','*']))
answer.append(operator(expression,'+',['+','*','-']))
answer.append(operator(expression,'-',['-','+','*']))
answer.append(operator(expression,'-',['-','*','+']))
answer.append(operator(expression,'*',['*','-','+']))
answer.append(operator(expression,'*',['*','+','-']))
answer = max(answer)
return answer
채점 결과
정확성: 90.0
합계: 90.0 / 100.0
하드코딩..이란 ..이런걸까
정확성에서 틀린건 런타임오류 때문인데 재귀함수를 써서 시간초과가 되는건지....잘 모르겠다...ㄱ-...열받...
pop()을 del로 바꿔줘도 계속 시간초과되고...후... 뭔가 방법을 찾아야겠다.
'2 > 프로그래머스' 카테고리의 다른 글
프로그래머스 연습 문제 - 숫자블록 (0) | 2020.10.01 |
---|---|
프로그래머스 연습 문제 - 올바른 괄호 (0) | 2020.09.30 |
프로그래머스 연습 문제 - 124 나라의 숫자 (0) | 2020.09.28 |
프로그래머스 연습 문제 - 다리를 지나는 트럭 (0) | 2020.09.27 |
프로그래머스 연습 문제 - 프린터 (0) | 2020.09.27 |