

함수를 만들어서 답을 뽑아냈다.
매개변수에 포함된 연산자 인 경우만 < 연산을 해주세요 라고 한다.
그다음 for 문을 이용해서 연산자의 위치를 확인한후 연산자 앞 뒤 를 뽑아서 함수를 이용해 값을 계산해준뒤 splice 함수를 이용해서 삭제하고 그 자리에다가 추가해주세로를 넣으면 된다.
-Math.abs = 절대값 함수이다.
const expression = expression1.split(/(\D)/);
-> 여기 부분이 중요하다. split 를 이용한 정규식 자르기이다. 우리는 연산자를 토대로 잘라야되기 때문에 / (\D ) == 정수가 아닌것을 잘라주세요 /
를 사용해서 쉽게 자를수 있다. < - 처음에는 어떻게 자르지? 이것때문에 많이 고민했는데 정규식을 이용하면 금방 구할수 있다. 정규식 문제가 많이 나오고 있다. ..
function solution(expression1) {
var answer = 0;
const expression = expression1.split(/(\D)/);
var max_return=0;
//수식을 숫자와 아닌것을 뽑은다음 .
// 갯수를 통해 우선순위를 부여하는것
//조합 순열 이거 개념을 이용해서 뽑는거 같은디
//[] 이런식으로 만듬 이중배열
// 그다음 이순으로 stack 구조 만들기
var sushi=[
['*','-','+'],
['*','+','-'],
['+','-','*'],
['+','*','-'],
['-','+','*'],
['-','*','+']
];
const hey_go= function(x1,x2,ima){
if(ima=='*'){
return x1*x2;
}
if(ima=='+'){
return x1+x2;
}
if(ima=='-'){
return x1-x2;
}
}
for(var i=0; i<sushi.length; i++){
const copy_expression=expression.slice();
for(var go_i=0; go_i<3; go_i++){
if(copy_expression.includes(sushi[i][go_i])){
for(var go=0; go<copy_expression.length; go++){
if(copy_expression[go]==sushi[i][go_i]){
var new_hey=hey_go( parseInt(copy_expression[go-1]),parseInt(copy_expression[go+1]),sushi[i][go_i]);
copy_expression.splice(go-1,3,new_hey);
go-=1;
}
}
}
if(isNaN(copy_expression)==false){
max_return= Math.max(Math.abs(copy_expression),max_return);
}
}
}
return max_return;
}
solution("50*6-3*2")