File tree Expand file tree Collapse file tree 1 file changed +56
-0
lines changed
Expand file tree Collapse file tree 1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change 1+ # 백준 2504번: 괄호의 값 (2회차)
2+
3+ import sys
4+
5+ input = sys .stdin .readline
6+
7+ # 1 <= len(string) <= 30
8+ string = list (input ().rstrip ())
9+
10+ stack = []
11+ answer = 0
12+ balanced = True
13+
14+ braces = list ('()[]' )
15+
16+ for letter in string :
17+ # print(letter)
18+ if letter == ']' :
19+ sums = 0
20+ while stack and stack [- 1 ] not in braces :
21+ sums += stack .pop ()
22+
23+ if not stack or stack [- 1 ] != '[' :
24+ balanced = False
25+ break
26+
27+ stack .pop () # '['
28+ stack .append (sums * 3 if sums > 0 else 3 )
29+
30+ elif letter == ')' :
31+ sums = 0
32+ while stack and stack [- 1 ] not in braces :
33+ sums += stack .pop ()
34+
35+ if not stack or stack [- 1 ] != '(' :
36+ balanced = False
37+ break
38+
39+ stack .pop () # '('
40+ stack .append (sums * 2 if sums > 0 else 2 )
41+
42+ else :
43+ stack .append (letter )
44+
45+ # print(stack)
46+ # print()
47+
48+ if not balanced : print (0 )
49+ else :
50+ for number in stack :
51+ if number in ['[' , ']' , '(' , ')' ]:
52+ answer = 0
53+ break
54+
55+ answer += number
56+ print (answer )
You can’t perform that action at this time.
0 commit comments