https://www.acmicpc.net/problem/10799
시간 1초, 메모리 256MB
input :
output :
조건 :
cnt에 현재 까지 '('의 개수를 left로 기록한다.
레이져의 경우 '(' ')'로 이루어져 있는데 이것을 생각해줘서
cnt -= 1을 먼저 해주고 total에 cnt를 더해줘야 한다.
레이져의 ')'이 아니라 쇠막대기의 마지막인 ')'인 경우에는
마지막 남은 1조각이 있기 떄문에 total에 1을 더해주고
cnt에서 1을 빼준다.(쇠막대기는 인제 존재하지 않으니까)
import sys
stick = sys.stdin.readline().strip()
cnt = 0
total = 0
for idx, item in enumerate(stick):
if item == '(':
cnt += 1
else:
if stick[idx - 1] == '(':
cnt -= 1
total += cnt
else:
cnt -= 1
total += 1
print(total)