후위식 연산(post fix)
알고리즘 공부 간 기록이 필요한 문제들에 대한 정리를 기록하는 포스트 입니다.
1. 문제 요건
후위식 연산값을 입력받고 결과값을 리턴하여라
2. 코드
function solution(s) {
let result = lv = rv = 0
let operator = ['+','-','*','/']
let stack = []
for(let x of s) {
if(!isNaN(x)) {
stack.push(Number(x))
} else {
rv = stack.pop()
lv = stack.pop()
stack.push(fix(rv, lv, x))
}
}
return stack.pop()
}
function fix(rv,lv,op) {
if(op === '+') {
return lv + rv
} else if(op === '-') {
return lv - rv
} else if(op === '*') {
return lv * rv
} else {
return lv / rv
}
}
let str = '352+*9-'
3. 결과정리
스택문제를 연습할때 가장 기본적인 문제로 숫자는 스택에 쌓고 연산자가 나오면 앞선 두개의 스택값을 pop 하여 연산하는 방식