알고리즘/JAVA
4. 후위식 연산(postfix)
vivi
2021. 9. 23. 01:36
import java.util.*;
class Main {
public int solution(String str) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (char c : str.toCharArray()) {
int a = 0, b = 0;
if (c >= '0' && c <= '9') {
stack.push(Integer.valueOf(c - '0'));
} else {
switch (c) {
case '+':
stack.push(stack.pop() + stack.pop());
break;
case '-':
a = stack.pop();
b = stack.pop();
stack.push(b - a);
break;
case '*':
stack.push(stack.pop() * stack.pop());
break;
case '/':
a = stack.pop();
b = stack.pop();
stack.push(b / a);
break;
}
}
}
answer = stack.pop();
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.print(T.solution(str));
kb.close();
}
}
import java.util.*;
class Main {
public int solution(String str) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {
stack.push(Integer.valueOf(c - '0'));
} else {
int rt = stack.pop();
int lt = stack.pop();
if (c == '+')
stack.push(rt + lt);
else if (c == '-')
stack.push(lt - rt);
else if (c == '*')
stack.push(lt * rt);
else if (c == '/')
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.print(T.solution(str));
kb.close();
}
}
Character.isDigit(c)