leetcode 150 python 파이썬 풀이방법

스크·2023년 11월 23일

코딩기록

목록 보기
3/6

문제링크

https://leetcode.com/problems/evaluate-reverse-polish-notation/?envType=study-plan-v2&envId=top-interview-150

📢 문제 간략설명

역 폴란드 표기법tokens 의 산술 표현식을 나타내는 문자열 배열이 제공됩니다 .

표현을 평가해 보세요. 표현식의 값을 나타내는 정수를 반환합니다 .

참고 사항:

유효한 연산자는 '+', '-', '*'및 입니다 '/'.
각 피연산자는 정수이거나 다른 표현식일 수 있습니다.
두 정수 사이의 나눗셈은 항상 0을 향해 잘립니다 .
0으로 나누는 일은 없을 것입니다.
입력은 역방향 폴란드어 표기법으로 유효한 산술 표현식을 나타냅니다.
답과 모든 중간 계산은 32비트 정수로 표현될 수 있습니다.

📌풀이 알고리즘

  1. 임시 배열에 숫자를 하나씩 저장한다.
  2. 연산자를 만나면 바로 수행하고, 값을 저장한다.

📌소스코드 및 풀이방법

class Solution:
    def evalRPN(self, tokens: List[str]) -> int:
        
        tmp = []
        for num in tokens:
            if num == "+":
                a = tmp.pop()
                b = tmp.pop()
                tmp.append(a+b)
            
            elif num == "-":
                a = tmp.pop()
                b = tmp.pop()
                tmp.append(b-a)

            elif num == "/":
                a = tmp.pop()
                b = tmp.pop()
                tmp.append(int(b/a))

            elif num == "*":
                a = tmp.pop()
                b = tmp.pop()
                tmp.append(b*a)
            else:
                tmp.append(int(num))
        return tmp[0]


        

문제후기

쉬운문제


profile
공부하자

0개의 댓글