https://leetcode.com/problems/evaluate-reverse-polish-notation/
postfix notation로 작성된 식의 결과 반환
단순 postfix 문제이다. 다음 과정을 반복하며 연산을 진행한다.
1) 피연산자를 만나면 stack에 push
2) 연산자를 만나면 stack에서 두개 꺼내서 연산 후 다시 넣기
public class Solution {
public int EvalRPN(string[] tokens) {
Stack<int> stack = new Stack<int>();
foreach(string token in tokens)
{
switch(token)
{
case "+":
stack.Push(stack.Pop() + stack.Pop());
break;
case "-":
int temp = stack.Pop();
stack.Push(stack.Pop() - temp);
break;
case "/":
int temp2 = stack.Pop();
stack.Push(stack.Pop() / temp2);
break;
case "*":
stack.Push(stack.Pop() * stack.Pop());
break;
default:
stack.Push(Int32.Parse(token));
break;
}
}
return stack.Peek();
}
}