알고리즘/스택, 큐

[알고리즘] 후위식 연산 with Java

VIPeveloper 2022. 3. 20. 15:11
728x90
반응형
4.  후위식 연산(postfix)

설명

후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.

만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다.

입력

첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.

식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다.

출력

연산한 결과를 출력합니다.

예시 입력 1 

352+*9-

예시 출력 1

12

 

후위식이 주어지면 연산하여 값을 출력해주면 되는 문제이다. 

오늘 배운 것

1. 문제 풀이

import java.util.*;
class Main {

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String s = kb.next();
        solution(s);
    }

    private static void solution(String s) {
        Stack<Integer> stack = new Stack<>();
        for(char c : s.toCharArray()){
            if(Character.isDigit(c)){
                stack.push(c-48);
            }else{
                int b = stack.pop();
                int a = stack.pop();

                if(c=='+') stack.push(a+b);
                else if(c=='-') stack.push(a-b);
                else if(c=='*') stack.push(a*b);
                else if(c=='/') stack.push(a/b);
            }
        }
        System.out.println(stack.peek());
    }
}
728x90
반응형