Algorithm/문제
39. 후위식 연산(postfix)
챛채
2023. 9. 25. 16:59
숫자 만나면 push()하고 연산자 만나면 pop()
import java.util.*;
public class Main {
public int solution(String str) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (char x : str.toCharArray()) {
if(Character.isDigit(x)) stack.push(x-48); // '5'-48을 해야 진짜 숫자 5가 나옴 ,'0'아스키코드는 48
else{
int rt=stack.pop();
int lt=stack.pop();
if(x=='+') stack.push(lt + rt);
else if(x =='-') stack.push(lt - rt);
else if(x =='*') stack.push(lt * rt);
else if(x =='/') stack.push(lt / rt);
}
}
answer = stack.get(0);
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}