Skip to content

Commit eb2d906

Browse files
authored
Merge pull request #1110 from AlgorithmWithGod/Seol-JY
[20251013] BOJ / G5 / 괄호의 값 / 설진영
2 parents b43fe19 + fbb48e2 commit eb2d906

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws IOException {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
String s = br.readLine();
9+
10+
System.out.println(solution(s));
11+
}
12+
13+
static int solution(String s) {
14+
Deque<Character> deque = new ArrayDeque<>();
15+
int result = 0;
16+
int temp = 1;
17+
18+
for (int i = 0; i < s.length(); i++) {
19+
char c = s.charAt(i);
20+
21+
if (c == '(') {
22+
deque.push(c);
23+
temp *= 2;
24+
}
25+
else if (c == '[') {
26+
deque.push(c);
27+
temp *= 3;
28+
}
29+
else if (c == ')') {
30+
if (deque.isEmpty() || deque.peek() != '(') {
31+
return 0;
32+
}
33+
34+
if (s.charAt(i - 1) == '(') {
35+
result += temp;
36+
}
37+
38+
deque.pop();
39+
temp /= 2;
40+
}
41+
else if (c == ']') {
42+
if (deque.isEmpty() || deque.peek() != '[') {
43+
return 0;
44+
}
45+
46+
if (s.charAt(i - 1) == '[') {
47+
result += temp;
48+
}
49+
50+
deque.pop();
51+
temp /= 3;
52+
}
53+
}
54+
55+
return deque.isEmpty() ? result : 0;
56+
}
57+
}
58+
```

0 commit comments

Comments
 (0)