표로 나타내어 어떤 패턴이 있는지 확인해본다. cnt는 괄호가 열리면 +1, 닫히면 -1을 해준다.
( | ) | ( | ( | ( | ( | ) | ( | ) | ) | ( | ( | ) | ) | ( | ) | ) | ) | ( | ( | ) | ) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cnt | 1 | 0 | 1 | 2 | 3 | 4 | 3 | 4 | 3 | 2 | 3 | 4 | 3 | 2 | 3 | 2 | 1 | 0 | 1 | 2 | 1 | 0 |
result | 0 | 3 | 3 | 1 | 3 | 1 | 2 | 1 | 1 | 1 | 1 |
(
가 나오면cnt += 1
)
가 나오면cnt -= 1
)
다음에)
가 연속으로 나오면result += 1
(
다음에)
가 나오면 `result += cnt'
result를 다 더하면 17로 정상적으로 출력된다.
T = int(input())
for tc in range(1, T + 1):
gwalho = ' ' + input()
cnt = 0
result = 0
for i in range(1, len(gwalho)):
if gwalho[i] == '(': # cnt 1 증가
cnt += 1
else:
cnt -= 1
if gwalho[i-1] == '(':
result += cnt
else: result += 1
print(f'#{tc} {result}')