문제링크
📢 문제 간략설명
역 폴란드 표기법tokens 의 산술 표현식을 나타내는 문자열 배열이 제공됩니다 .
표현을 평가해 보세요. 표현식의 값을 나타내는 정수를 반환합니다 .
참고 사항:
유효한 연산자는 '+', '-', '*'및 입니다 '/'.
각 피연산자는 정수이거나 다른 표현식일 수 있습니다.
두 정수 사이의 나눗셈은 항상 0을 향해 잘립니다 .
0으로 나누는 일은 없을 것입니다.
입력은 역방향 폴란드어 표기법으로 유효한 산술 표현식을 나타냅니다.
답과 모든 중간 계산은 32비트 정수로 표현될 수 있습니다.
📌풀이 알고리즘
- 임시 배열에 숫자를 하나씩 저장한다.
- 연산자를 만나면 바로 수행하고, 값을 저장한다.
📌소스코드 및 풀이방법
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]
문제후기
쉬운문제