C) 스페셜 저지 서브태스크 1초 1024MB
문제
UDPC만을 손꼽아 기다리던 포닉스는 어느새 어디를 봐도 알파벳 U, D, P, C가 보이는 수준에 이르렀다.
그중에서도, 알파벳 C, U와 괄호 ( , )는 굉장히 유사한 모양을 띠기 때문에 구별하기가 매우 힘들어졌다.
다행인 점은, 알파벳 C와 U를 돌려 마치 괄호처럼 사용할 수 있다는 점이다.
C는 그 모습 그대로 여는 괄호 ( 로 사용하거나, 어느 방향으로든 90도씩 두 번을 돌려 닫는 괄호 ) 로 사용할 수 있다.
U는 시계 방향으로 90도를 회전하면 여는 괄호 ( , 반시계 방향으로 90도를 회전하면 닫는 괄호 ) 로 사용할 수 있다.
포닉스는 UDPC를 기다리느라 지쳤기 때문에 알파벳을 최소한으로 돌리고 싶다.
짝수 길이의 C와 U로 이루어진 문자열이 주어지면,
알파벳 중 하나를 골라 어느 방향으로든 90도씩 회전해서 올바른 괄호 문자열을 만들기 위해 필요한 최소 회전 횟수를 구하여라.
올바른 괄호 문자열은 다음과 같이 정의된다.
빈 문자열은 올바른 괄호 문자열이다.
S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호 문자열이다.
S와 T가 올바른 괄호 문자열이라면, 두 문자열을 이어 붙인 괄호 문자열 ST도 올바른 괄호 문자열이다.
입력
첫째 줄에 테스트 케이스의 개수
둘째 줄부터
모든 테스트 케이스에 대해서
출력
각 테스트 케이스에 대해, 첫째 줄에 주어진 문자열
각 테스트 케이스에 대해, 둘째 줄에 구성된 괄호 문자열
가능한 답이 여러 가지라면 그중 하나만 출력한다.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 10점 | |
| #2 | 20점 | 각 |
| #3 | 30점 | |
| #4 | 40점 | 추가 제약 조건 없음 |
예제
5
CC
UU
CCUCCUCU
UUUUCCCC
CCUUUUCC
2
()
2
()
5
(())()()
8
()()()()
6
((()))()