LeetCode - 150. Evaluate Reverse Polish Notation

zwon·2023년 11월 23일
0

문제

문제는 간단하다.
후위연산자 계산이다.
문제 링크 : LeetCode - 150. Evaluate Reverse Polish Notation

풀이

stack을 사용했다.

  • 연산자가 나올때까지 숫자들을 stack에 append한다.
  • 피연산자가 나오면 stack[-1]과 stack[-2]의 숫자를 연산한다.
    • 순서는 ex) stack[-2] + stack[-1]

후위연산자 표기법에 대해서는 여기를 확인하자.

class Solution:
    def evalRPN(self, tokens: List[str]) -> int:
        stack = []
        operator = ['+', '-', "/", "*"]
        for token in tokens:
            if token not in operator: # number
                stack.append(token)
            else:
                num1 = int(stack.pop())
                num2 = int(stack.pop())
                if token == '+':
                    stack.append(num2 + num1)
                elif token == '-':
                    stack.append(num2 - num1)
                elif token == '*':
                    stack.append(num2 * num1)
                elif token == '/':
                    stack.append(num2 / num1)
        return int(stack.pop())

메모

  • stack 사용
  • 후위연산자
profile
Backend 관련 지식을 정리하는 Back과사전

0개의 댓글