[Algorithm] 후위식 연산 (postfix) (javaScript)

swing·2023년 7월 12일
0

[Algorithm]

목록 보기
69/96

문제

후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 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
profile
if(기록📝) 성장🌱

0개의 댓글