[LEETCODE] 150: Evaluate Reverse Polish Notation(Python)

박나현·2024년 4월 21일

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)이다.

profile
의견을 가지고 학습하기, 질문하기, 궁금했던 주제에 대해 학습하는 것을 미루지 않기

0개의 댓글