ページが読み込まれませんか? こちらをクリックすると直るかもしれません。
Placeholder

#1657

가장 긴 괄호순열 찾기 1s 128MB

問題

괄호순열은 아래와 같이 귀납적으로 정의된다.

 

1. 비어 있는 문자열은 괄호순열이다. 2. s가 괄호순열이라면, (s)와 [s]도 괄호순열이다. 3. a와 b가 괄호순열이라면, ab도 괄호순열이다. 4. 그 이외의 모든 문자열은 괄호순열이 아니다. 5. 예를 들어, 아래의 모든 문자열들은 괄호순열이다. " (), [], (()), ()[], ()[()] "

 

그리고 다음 문자열들은 괄호순열이 아니다. " (, ], )(, ([)], ([(] "

 

당신은 주어진 문자열 a[1..n]에서 가장 긴 괄호순열을 찾아내야 한다. 단, 괄호순열은 원래 문자열의 부분문자열이어야 한다. 좀 더 엄밀히 표현하면, 1 ≤ i1 < i2 <... < im ≤ n인 a[i1], a[i2], ... ,a[im]이 괄호순열이 되는 최대 m을 찾아내야 한다. 예를 들어 ([([]])]에서 가장 긴 괄호순열은 [([])]이 된다.


入力

첫 번째 줄에 문자열 a가 입력된다. 문자열 사이에 공백은 없으며, ‘(’, ‘[’, ‘)’, ‘]’ 네 가지 문자로만 이루어져 있다. a의 길이는 1 이상 100 이하이다.

出力

첫 줄에 가장 긴 괄호순열의 길이를 출력한다.

例題 #1

((()))
6

例題 #2

([][][)
6

例題 #3

)[)(
0
ログインしないとコードを書けません。