n쌍 괄호 문자열은 여는 괄호 ( n개와 닫는 괄호 ) n개로 이루어진 길이 2n짜리 문자열이다.
올바른 괄호 문자열은 다음과 같이 정의한다.
서로 붙어 있는 () 한 쌍을 지우는 작업을 반복해서 빈 문자열로 만들 수 있으면 올바른 괄호 문자열이다.
예를 들어 (())는 올바른 괄호 문자열이다. 2번째와 3번째 문자를 지우면 ()가 되고, 한 번 더 지우면 빈 문자열이 된다. )()(는 올바르지 않다. 2번째와 3번째 문자를 지우면 )(가 남고 더는 지울 수 없다.
n쌍 올바른 괄호 문자열을 모두 모아 사전순으로 정렬했을 때 k번째 문자열을 구하여라. 사전순 비교에서 (는 )보다 앞선다.
예를 들어 n이 3일 때 올바른 괄호 문자열을 사전순으로 나열하면 다음과 같다.
((()))
(()())
(())()
()(())
()()()