| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 1192 | 273 | 236 | 26.020% |
‘(’, ‘)’로 이루어진 문자열이 올바른 괄호 문자열이라는 것은 다음을 의미합니다.
(’와 ‘)’를 붙여 만든 문자열 “($S$)” 는 올바른 괄호 문자열입니다.예를 들어, “(())()”, “()()”은 올바른 괄호 문자열이고 “)(”, “())(”는 올바른 괄호문자열이 아닙니다.
문자열 $S$가 주어집니다. $S$는 ‘(’, ‘)’, ‘?’, ‘*’로 이루어진 문자열입니다. ‘?’ 문자를 ‘(’이나 ‘)’로, ‘*’ 문자를 ‘(’와 ‘)’로 이루어진 길이가 $0$ 이상인 원하는 문자열로 대체하여 $S$를 올바른 괄호 문자열로 만들 수 있나요?
첫 줄에 테스트케이스의 수 $T$가 주어집니다. $(1 \le T \le 10\,000)$
각 테스트케이스의 첫 줄에는 ‘(’, ‘)’, ‘?’, ‘*’로 이루어진 길이가 $1$ 이상 $500\,000$ 이하인 문자열 $S$가 주어집니다.
입력에서 주어진 문자열 $S$의 길이 합은 $500\,000$을 넘지 않습니다.
각 테스트케이스마다 한 줄에 하나씩, ‘?’ 문자를 ‘(’이나 ‘)’로, ‘*’ 문자를 ‘(’, ‘)’로 이루어진 길이가 $0$ 이상인 원하는 문자열로 대체하여 $S$를 올바른 괄호 문자열로 만들 수 있다면 “YES”, 불가능하면 “NO”를 출력하세요.
4 ()??)) ())*(()) *)))(((* ?()(?*))(()?
YES NO YES YES
?’를 ‘(’로 대체해서 $S$를 올바른 괄호 문자열 “()(())”로 만들 수 있습니다.*’을 어떻게 대체해도 $S$를 올바른 괄호 문자열로 만들 수 없습니다.*’을 각각 “(((” 와 “)))”로 대체해서 $S$를 올바른 괄호 문자열 “((()))((()))”로 만들 수 있습니다.?’, ‘?’, ‘*’, ‘?’를 차례로 ‘(’, ‘)’, “(”, ‘)’로 대체해서 $S$를 올바른 괄호 문자열 “(()()())(())”로 만들 수 있습니다.