[JAVA] 37. 후위식 연산(postfix) - stack
2021. 10. 24. 13:58
728x90
설명
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다.
입력
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.
식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다.
출력
연산한 결과를 출력합니다.
예시 입력 1
352+*9-
예시 출력 1
12
풀이
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str = in.next();
Stack<Integer> stack = new Stack<>();
for(char ch : str.toCharArray()){
if(Character.isDigit(ch)){
// ch를 그대로 넣으면 아스키코드로 들어감
stack.push(ch -48);
}else{
int rt = stack.pop();
int lt = stack.pop();
if(ch == '+'){
stack.push(rt + lt);
}else if(ch == '-'){
stack.push(lt - rt);
}else if(ch =='*'){
stack.push(lt*rt);
}else if(ch =='/'){
stack.push(lt/rt);
}
}
}
System.out.println(stack.get(0));
}
}
728x90
'알고리즘 > JAVA' 카테고리의 다른 글
[JAVA] 39. 공주구하기 - QUEUE (0) | 2021.10.24 |
---|---|
[JAVA] 38. 쇠막대기 ✔ - stack (0) | 2021.10.24 |
[JAVA] 36. 크레인 인형뽑기(카카오) (0) | 2021.10.24 |
[JAVA] 35. 괄호문자 제거 -STACK (0) | 2021.10.24 |
[JAVA] 34. 올바른 괄호 - stack (0) | 2021.10.24 |