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
반응형
'알고리즘 > 스택, 큐' 카테고리의 다른 글
[알고리즘] 교육과정 설계 with Java (0) | 2022.03.21 |
---|---|
[알고리즘] 쇠막대기 with Java (0) | 2022.03.21 |
[알고리즘] 크레인 인형뽑기(카카오) with Java (0) | 2022.03.19 |
[알고리즘] 괄호 문자 제거 with Java (0) | 2022.03.18 |
[알고리즘] 올바른 괄호 with Java, push(),pop(),size() (0) | 2022.03.18 |