문제풀이/기타

[파이썬] [스택] 백준 15926 현욱

승무_ 2022. 3. 5. 13:40

문제

https://www.acmicpc.net/problem/15926

 

15926번: 현욱은 괄호왕이야!!

첫 번째 입출력에서, 맨 처음 위치부터 4개를 잘라낸 (())가 가장 긴 올바른 괄호 문자열이다. 두 번째 입출력에서, 6번째 위치부터 8개를 잘라낸 ()((()))가 가장 긴 올바른 괄호 문자열이다.

www.acmicpc.net

 

코드

n=int(input())
array=list(input())

dp=[0]*n
stack=[]

for i in range(len(array)):
    if array[i]=="(":
        stack.append(i)
    else:
        if stack:
            if array[stack[-1]]=="(":
                n=int(stack.pop())
                dp[i] = dp[n] = 1
count=0
result=0
for i in dp:
    if i==1:
        count+=1
        result=max(result,count)
    else:
        count=0
print(result)