오늘의 문제
키워드
자료구조, 스택
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
brackets = input()
stack = []
count = 0
for i in range(len(brackets)) :
if brackets[i] == '(' :
stack.append(brackets[i])
else :
stack.pop()
if brackets[i-1] == '(' : ## 직전 값이 여는 괄호(=레이저)
count += len(stack) ## 막대기 조각 개수
else : ## 직전 값이 닫는 괄호(=막대기 끝)
count += 1
print(count)
# [수정 전 오답]
brackets = list(input())
stack = []
count = 0
for s in brackets :
if len(stack) == 0 or s == '(' :
stack.append(s)
elif stack[-1] == '(' and s == ')' : ## 레이저: 직전 값이 여는 괄호, 현재 값이 닫는 괄호일 때
stack.pop() ## 여는 괄호 1개 제거
count += stack.count('(')
elif s == ')' : # 막대기 오른쪽 끝
stack.pop()
count += 1
print(count)
Comments powered by Disqus.