9/2 백준10799
parenthesis = input()
answer = 0
stack = []
for i in range(len(parenthesis)) :
if (parenthesis[i] == '(') :
stack.append('(')
else :
if (parenthesis[i - 1] == '(') :
stack.pop()
answer += len(stack)
else :
stack.pop()
answer += 1
print(answer)
- 괄호 “(“가 나오는 경우
- stack에 “(“를 추가한다..
- 괄호 “)”가 나오는 경우
- ”)” 앞에 “(“가 있으면 레이저이다.
- 레이저인 경우, 앞에 stack에 포함된 (의 개수만큼 막대기가 생긴다.
- ”)” 앞에 “)”가 있으면 쇠막대기의 끝부분이므로 막대기가 하나 더 생긴다.
- ”)” 앞에 “(“가 있으면 레이저이다.
댓글남기기