https://www.acmicpc.net/problem/10799
import sys
from collections import deque
stack = deque()
bar = 0
razer = True
for s in sys.stdin.readline().rstrip():
if s == "(":
stack.append(s)
razer = True
else:
stack.pop()
if razer:
bar += len(stack)
razer = False
else:
bar += 1
print(bar)
'(' : 스택에 저장, 레이저일 가능성을 고려하여 razer=True
')'는 공통적으로 스택에서 제거한다.
')'가 레이저라면 조각난 쇠막대기를 저장, 다음 데이터가 레이저일 가능성이 없으므로 razer=False
')'가 쇠막대기라면 끝난 쇠막대기의 개수 1을 저장한다.