[LeetCode/Java] 150. Evaluate Reverse Polish Notation

yuKeon·2023년 8월 31일
0

LeetCode

목록 보기
15/29
post-thumbnail

0. 문제

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


1. 문제 설명

  • 후위연산을 하시오.

2. 문제 풀이

2.1. 접근법

  • 숫자가 나오면 Stack에 push하고 연산 기호가 나오면 pop을 두 수를 꺼내서 연산한 후 Stack에 push한다.

3. 코드

// 숫자가 들어오면 push
// 연산 기호가 들어오면 두 개를 pop해서 연산 한 다음 결과값을 push

class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack();
        
        for (String s : tokens) {
            if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {
                int n1 = stack.pop();
                int n2 = stack.pop();
                int result = 0;
                
                if (s.equals("+")) result = n2 + n1;
                else if (s.equals("-")) result = n2 - n1;
                else if (s.equals("*")) result = n2 * n1;
                else result = n2 / n1;
                
                stack.push(result);
            } else stack.push(Integer.parseInt(s));
        }
        return stack.peek();
    }
}

4. 결과


0개의 댓글