오늘 배운거
Character.isDigit() <- 숫자인지 판별하는 메서드
Character.getNumericValue(num)나
char - 48
후위식 연산 = 연산자를 뒤로 뺀 연산
352+*9- 를 후위식 연산하면 3*(5+2)-9로 12가된다
후위식 연산을 하는 방법
스택에 자연수면 값을 저장, 연산자를 만나면
먼저 뺀 것을 rt, 나중에 뺀 것을 lt에 넣어서 연산
마지막에 get(0)로 스택에 있는 걸 리턴
import java.util.*;
public class Main {
public int Solution(String s1){
Stack<Integer> st = new Stack<>();
for(char x : s1.toCharArray()){
//char를 int로 변환
if(Character.isDigit(x)) st.push(x-48);
else{
int rt = st.pop();
int lt = st.pop();
if(x == '+') st.push(lt +rt);
if(x == '-') st.push(lt-rt);
if(x == '*') st.push(lt * rt);
if(x == '/') st.push(lt/rt);
}
}
return st.pop();
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String s = in.next();
System.out.println(T.Solution(s));
}
}