역폴란드 표기법 으로 표현된 산술식을 나타내는 배열이 주어집니다. 이 식을 계산하고 값을 반환하세요.
- 연산자는 '+', '-', '*', '/'
- 각 피연산자는 정수 또는 다른 표현식이 될 수 있음
- 두 정수 사이의 나눗셈은 버림처리(Trunc)
- 0으로 나누는 경우는 없음
- input은 역폴란드 표기법으로 표현된 산술식
- 답과 중간 계산은 32비트 정수로 나타낼 수 있어야함
역폴란드 표기법이 뭔지 당황했는데 생각해보니 이번주 인턴쉽 강의 시간에 들었던 방법이었다.
class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for (String t : tokens) {
if (!"+-*/".contains(t)) {
stack.push(Integer.parseInt(t));
} else {
int num1 = stack.pop();
int num2 = stack.pop();
int temp;
if (t.equals("+")) {
temp = num2 + num1;
} else if (t.equals("-")) {
temp = num2 - num1;
} else if (t.equals("/")) {
temp = num2 / num1;
} else {
temp = num2 * num1;
}
stack.push(temp);
}
}
return stack.pop();
}
}
Runtime 0ms