Data Structure & Algorithm
[알고리즘-JS] 스택(stack) - 후위식 연산
fnow
2022. 5. 4. 16:49
반응형
문제
후위 연산식이 주어지면 계산한 값을 출력하시오.
식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어집니다.
98+2*1-6+은 (8+9)*2-1+6와 같다.
입력 예제
98+2*1-6+
출력 예제
39
풀이
function solution(s) {
let answer = 0;
let stack = [];
for (let x of s) {
// 숫자일 경우
if(!isNaN(x)) stack.push(Number(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;
}
반응형