카카오 인턴쉽 2020 코딩테스트-수식 최대화

이서현·2021년 5월 3일
0

Algorithm

목록 보기
10/76

05.03에 푼 문제입니다🌷
수식최대화

function cal(arr,math){
    var result=arr[0]
    if(math==='*'){
        for(let i=1;i<arr.length;i++)
            result*=arr[i]
    }
    else if(math==='+'){
        for(let i=1;i<arr.length;i++)
            result+=arr[i]
    }
    else if(math==='-'){
        for(let i=1;i<arr.length;i++)
            result-=arr[i]
    }
    return result
}
function solution(expression) {
    var answer = 0;
    var result=[]
    const maths =[
        ['*','+','-'],
        ['*','-','+'],
        ['+','*','-'],
        ['+','-','*'],
        ['-','*','+'],
        ['-','+','*']
    ]
    
    for (let math of maths){
        const arr= expression.split(math[0])
        for(let i=0;i<arr.length;i++){
            const arr2=arr[i].split(math[1])
            for(let j=0;j<arr2.length;j++){
                arr2[j]=eval(arr2[j])
            }
            arr[i]=cal(arr2,math[1])
        }
        result.push(Math.abs(cal(arr,math[0])))
    }
    result.sort((a, b) => {
    return b-a;
    });
    answer=result[0]
    return answer;
}

3가지 연산자로 구할 수 있는 경우를 모두 계산한다.
계산한 값을 answer에 push한다.

profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글