시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (추가 시간 없음) | 512 MB | 148 | 35 | 26 | 29.885% |
여는 괄호 ’(’와 닫는 괄호 ’)’로 이루어진 문자열 S가 있다. 이 때, 다음 조건을 만족하는 문자열 T의 개수를 구하려고 한다.
예를 들어, S = "(()"이고 L = 3일 때 T = "))("이면 1, 2, 6번째 문자를 S의 문자로 하고 3, 4, 5번째 문자를 T의 문자로 하여 "(())()"를 만들 수 있으므로 T는 조건을 만족한다.
그러나 S = ")()"이고 L = 3일 때 T = ")(("이면 S와 T를 합쳐 올바른 괄호 문자열을 만들 수 없으므로 T는 조건을 만족하지 않는다.
조건을 만족하는 문자열 T의 개수가 많아질 수 있으므로, 109+7로 나눈 나머지를 계산하도록 한다.
첫 번째 줄에 문자열 S가 주어진다. S는 길이가 1 이상 3,000 이하이며 ‘(‘와 ‘)’로만 구성되어있다.
두 번째 줄에 자연수 L(1 ≤ L ≤ 3,000)이 주어진다.
첫 번째 줄에 문제의 정답을 출력한다.
( 3
2
위 입력 예제의 경우, 조건을 만족하는 T는 ()), )() 의 2가지가 가능하다.