File tree Expand file tree Collapse file tree 1 file changed +55
-0
lines changed
Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments