File tree Expand file tree Collapse file tree 1 file changed +71
-0
lines changed
Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.Stack ;
4+
5+ public class BJ_2504_ 괄호의_값 {
6+
7+ private static final BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ private static final BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System . out));
9+
10+ private static int ans, tmp, len;
11+ private static String str;
12+
13+ private static Stack<Character > stack;
14+
15+ public static void main (String [] args ) throws IOException {
16+ init();
17+ sol();
18+ }
19+
20+ private static void init () throws IOException {
21+ str = br. readLine();
22+ len = str. length();
23+ ans = 0 ;
24+ tmp = 1 ;
25+ stack = new Stack<> ();
26+ }
27+
28+ private static void sol () throws IOException {
29+ for (int i = 0 ; i < len; i++ ) {
30+ char c = str. charAt(i);
31+
32+ if (c == ' (' ) {
33+ tmp *= 2 ;
34+ stack. push(c);
35+ } else if (c == ' [' ) {
36+ tmp *= 3 ;
37+ stack. push(c);
38+ } else {
39+ if (stack. isEmpty() || c == ' )' && stack. peek() != ' (' || c == ' ]' && stack. peek() != ' [' ) {
40+ ans = 0 ;
41+ break ;
42+ }
43+
44+ if (c == ' )' ) {
45+ if (str. charAt(i - 1 ) == ' (' ) {
46+ ans += tmp;
47+ }
48+ tmp /= 2 ;
49+ stack. pop();
50+ } else if (c == ' ]' ) {
51+ if (str. charAt(i - 1 ) == ' [' ) {
52+ ans += tmp;
53+ }
54+ tmp /= 3 ;
55+ stack. pop();
56+ }
57+ }
58+ }
59+
60+ if (! stack. isEmpty()) {
61+ ans = 0 ;
62+ }
63+
64+ bw. write(ans + " " );
65+ bw. flush();
66+ bw. close();
67+ br. close();
68+ }
69+
70+ }
71+ ```
You can’t perform that action at this time.
0 commit comments