seungriyou / algorithm-study

알고리즘 & SQL 문제 풀이 기록
https://leetcode.com/u/summer_y
0 stars 0 forks source link

[LC] 150. Evaluate Reverse Polish Notation #36

Open seungriyou opened 8 months ago

seungriyou commented 8 months ago

https://leetcode.com/problems/evaluate-reverse-polish-notation/

Approach

연산자를 적용해야 하므로 stack을 이용한다. tokens를 순회하며 다음과 같이 동작한다.

  1. token이 연산자라면, stack에서 두 번 pop() 하여 두 값에 대해 연산한다. (stack에 먼저 push된 값이 첫 번째 operand)
  2. 아니라면, tokenint로 변환 후 stack에 push 한다.

위 과정을 완료한 뒤 stack에 남아있는 값이 결과 값이 된다.

[!note] 연산자에 대해, 수행해야 하는 계산 동작을 dict & lambda 로 구현해두면 매우 편리하다! (if 문 불필요)


Tip 💡

파이썬에서는 a // bint(a / b)가 다음과 같은 차이점이 있다. (본 문제에서는 int(x / y)를 택해야 한다!)


Complexity