후위식 연산

bkboy·2022년 5월 19일
0

문제

후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3(5+2)-9 을 후위연산식으로 표현하면 352+9- 로 표현되며 그 결과는 12입니다.

제한 사항

입출력 예

풀이

function solution(s) {
  let answer;
  let stack = [];
  for (let x of s) {
    if (!isNaN(x)) {
      stack.push(+x);
    } else {
      let rt = stack.pop();
      let lt = stack.pop();
      if (x === "+") stack.push(lt + rt);
      else if (x === "-") stack.push(lt - rt);
      else if (x === "*") stack.push(lt * rt);
      else if (x === "/") stack.push(lt / rt);
      // 각각의 경우로 나눠야함.
    }
  }
  answer = stack[0];
  return answer;
}

let str = "352+*9-";
console.log(solution(str));
  • 문자열을 돌며 숫자를 만나면 stack에 push, 연산을 만나면 stack에 문자를 꺼내어 연산해주고 다시 push를 반복한다.
  • stack에서 꺼내는 순서도 중요하다.
profile
음악하는 개발자

0개의 댓글