Skip to content

Commit 4262def

Browse files
authored
Merge pull request #222 from AlgorithmWithGod/suyeun84
[20250311] BOJ / G2 / 후위 표기식 / 김수연
2 parents 178f815 + 0897440 commit 4262def

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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+
```

0 commit comments

Comments
 (0)