Menu
CoddyTech

Evaluate Reverse Polish Notation

보통스택python iconjava iconcpp iconc iconjs icon+10

역폴란드 표기법으로 된 산술식을 토큰 배열로 받습니다. 이 표기법에서는 각 연산자가 두 피연산자 바로 뒤에 오므로, 3 4 +는 3 + 4를 의미하고 3 4 + 2 *는 괄호 없이 (3 + 4) * 2를 의미합니다. 각 토큰은 정수이거나 +, -, *, / 연산자 중 하나입니다.

식을 계산하여 그 값을 반환하세요. 나눗셈은 정수 부분만 취하고 0을 향해 버림합니다. 즉, 7 / 2는 3이고 -7 / 2는 -3입니다.

함수

evalRPN(tokens: string-array) → integer
tokensstring-array
표현식의 숫자와 연산자를 순서대로
반환값integer
표현식의 값

제약 조건

  • 1 ≤ tokens.length ≤ 104
  • 각 토큰은 +, -, *, / 또는 -200부터 200까지의 정수이며, 10진수로 표기되고 음수인 경우 앞에 빼기 기호가 붙습니다.
  • tokens는 역폴란드 표기법에서 유효한 표현식입니다.
  • 0으로 나누는 일은 발생하지 않으며, 모든 중간값과 최종값은 -231보다 크고 231보다 작습니다.

예제

입력
tokens = ["8", "3", "-", "4", "*"]
출력
20
설명
-는 순서대로 그 앞에 있는 두 숫자 8과 3에 적용되므로 5를 반환하며, -5가 아닙니다. 그런 다음 *는 그 5에 4를 곱해 20을 반환합니다.

lock icon제출 시 숨은 테스트 +18개

challenge icon

후속 질문

괄호를 의미를 바꾸는 경우에만 추가하여 (3 + 4) * 2와 같은 일반적인 표기법으로 식을 다시 구성할 수 있나요?

코드 초기화
def evalRPN(tokens):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

tokens = ["8", "3", "-", "4", "*"]

기대값

20