나는 ( 의 경우에는 cnt=+1 해주고 ) 의경우에는 두가지로 나뉘는데
1. ) 의 앞이 ( 의 경우에는 슬라이스 해주므로
cnt -= 1 한 후 res =+ cnt 를 해주어 더했다...
2. ) 앞이 ) 의 경우에는 막대를 닫느 것이므로
cnt += 1 한 후 cnt -= 1 해주어 막대 카운트를 내렸다
import sys
#from collections import deque # deque import
sys.stdin = open("input.txt", "rt")
Line= str(input())
cnt = 0
res = 0
for i in range(0,len(Line)):
if Line[i] == '(':
cnt+=1
else:
if Line[i-1] == '(':
cnt-=1
res += cnt
else:
cnt-=1
res+=1
print(res)
다행히///
카운팅 논리는(')'의 앞이 '('인지 ')'인지를 보는 것) 나랑 같으시지만, 스택이라는 자료를 쓰신다는 점은 나랑 다르다 !!
스택에 ( ( ( 를 쌓고, 닫는 괄호 나오면 스택에서 pop 하여 ( ( 이렇게 되도록 한다.
그리고 stack 에 그 길이를 더한다. sum += len(stack)
import sys
#from collections import deque # deque import
sys.stdin = open("input.txt", "rt")
# strin 읽는 것은 그냥 s = input() 하면 된다.
s = input()
stack = []
cnt = 0
res = 0
for i in range(len(s)):
if s[i] == '(':
stack.append(a[i])
else:
stack.pop() #어차피 if 건 else 건 pop 하므로 위에 써준다.
if s[i-1] == '(':
cnt += len(stack)
else:
cnt += 1
print(cnt)