알고리즘 주차의 마지막문제였다. 정규식을 좀 다룰줄 알아야겠다. 문제이해하는데 시간이 너무오래걸렸다. 정규표현식과 연산자가 문자열일떄 연산을하는 방법을 검색을통해 참고하여 한 2시간 50분정도 걸려 시간내에 겨우 제출할 수있었다..
function solution(expression) {
let answer = 0;
let marks = [["*","-","+"],["*","+","-"],["+","-","*"],["+","*","-"],["-","+","*"],["-","*","+"]];
const expressionArray = expression.split(/(\D)/);
const answerList = [];
const calculator = (n1,n2,operator) => {
if(operator === "+") {
return n1 + n2;
}
if(operator === "-") {
return n1 - n2;
}
if(operator === "*") {
return n1 * n2;
}
}
for(let x of marks) {
const temp = [...expressionArray];
for(let i= 0; i<3; i++) {
for (let j = 0; j<temp.length; j++) {
if(temp[j] === x[i]) {
const result = calculator(+temp[j-1],+temp[j+1],temp[j]);
temp.splice(j-1,3,result)
j = 0;
}
}
}
answerList.push(Math.abs(temp[0]));
}
for(let i = 0; i<answerList.length; i++) {
if(answer < answerList[i]) answer = answerList[i];
}
return answer
}