Skip to content

Commit 0370be4

Browse files
committed
2 parents 5121350 + 527eb38 commit 0370be4

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

정건우/2주차/260106.java

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
//https://www.acmicpc.net/problem/1935
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
import java.util.Stack;
7+
8+
public class BOJ_S3_1935_후위표기식2 {
9+
public static void main(String[] args) throws IOException {
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
12+
int N = Integer.parseInt(br.readLine());
13+
Stack<Double> stack = new Stack<>();
14+
double [] nums = new double[N];
15+
16+
String s = br.readLine();
17+
18+
for(int i = 0; i < N; i++) {
19+
nums[i] = Integer.parseInt(br.readLine());
20+
}
21+
22+
for (int i = 0; i < s.length(); i++) {
23+
char c = s.charAt(i);
24+
25+
switch(c) {
26+
case '+':
27+
double a1 = stack.pop();
28+
double a2 = stack.pop();
29+
stack.push(a1 + a2);
30+
break;
31+
case '-':
32+
double b1 = stack.pop();
33+
double b2 = stack.pop();
34+
stack.push(b2 - b1);
35+
break;
36+
case '*':
37+
double c1 = stack.pop();
38+
double c2 = stack.pop();
39+
stack.push(c1 * c2);
40+
break;
41+
case '/':
42+
double d1 = stack.pop();
43+
double d2 = stack.pop();
44+
stack.push(d2 / d1);
45+
break;
46+
default:
47+
stack.push(nums[c-'A']);
48+
break;
49+
}
50+
}
51+
52+
System.out.printf("%.2f", stack.pop());
53+
54+
}
55+
}

0 commit comments

Comments
 (0)