후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3(5+2)-9 을 후위연산식으로 표현하면 352+9- 로 표현되며 그 결과는 12입니다.
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다.
연산한 결과를 출력합니다.
입력
352+*9-
출력
12
const calculator = (left, str, right) => {
switch (str) {
case "+":
return left + right;
case "-":
return left - right;
case "*":
return left * right;
case "/":
return left / right;
default:
return;
}
};
const solution = (input) => {
const stack = [];
for (let x of input) {
if (!isNaN(x)) stack.push(Number(x));
else {
const right = stack.pop();
const left = stack.pop();
stack.push(calculator(left, x, right));
}
}
return stack[0];
};
const answer = solution("352+*9-");
console.log(answer); // 12