Evaluate Reverse Polish Notation - LeetCode
후위 표기식의 각 원소가 문자열 배열로 주어질 때, 식의 값을 계산해보자.
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
stack=[]
for i in tokens:
if i.isnumeric() or i[1:].isnumeric():
stack.append(int(i))
else:
b=stack.pop()
a=stack.pop()
if i=='+':
stack.append(a+b)
elif i=='-':
stack.append(a-b)
elif i=='*':
stack.append(a*b)
else:
stack.append(int(a/b))
return stack[0]
음수 나눗셈에서 살짝 헷갈렸다. 그리고 스택을 사용했기 때문에 a→b 순으로 받는 게 아니라 b→a 순으로 받아야 한다!
O(len(tokens))이라 O(10^4)이다.