File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed
Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.util.* ;
3+ import java.io.* ;
4+
5+ public class boj1918 {
6+ static BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
7+ static StringBuilder sb = new StringBuilder ();
8+
9+ public static void main (String [] args ) throws Exception {
10+ String input = br. readLine();
11+ Stack<Character > stack = new Stack<> ();
12+ for (int i = 0 ; i < input. length(); i++ ) {
13+ char c = input. charAt(i);
14+ switch (c) {
15+ case ' +' :
16+ case ' -' :
17+ case ' *' :
18+ case ' /' :
19+ while (! stack. isEmpty() && priority(stack. peek()) >= priority(c)) {
20+ sb. append(stack. pop());
21+ }
22+ stack. add(c);
23+ break ;
24+ case ' (' :
25+ stack. add(c);
26+ break ;
27+ case ' )' :
28+ while (! stack. isEmpty() && stack. peek() != ' (' ) {
29+ sb. append(stack. pop());
30+ }
31+ stack. pop();
32+ break ;
33+ default :
34+ sb. append(c);
35+ }
36+ }
37+ while (! stack. isEmpty()) {
38+ sb. append(stack. pop());
39+ }
40+ System . out. println(sb. toString());
41+ }
42+
43+ public static int priority (char op ) {
44+ if (op == ' (' || op == ' )' ) return 0 ;
45+ else if (op == ' +' || op == ' -' ) return 1 ;
46+ else if (op == ' *' || op == ' /' ) return 2 ;
47+ return - 1 ;
48+ }
49+ }
50+
51+ ```
You can’t perform that action at this time.
0 commit comments