[BOJ 1023] 괄호 문자열

View as PDF

Submit solution

Points: 4
Time limit: 2.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

괄호 문자열은 다음과 같이 정의 한다.</p>

  1. 빈 문자열은 괄호 문자열이다.
  2. S가 괄호 문자열일 때, (S)도 괄호 문자열이다.
  3. ST가 괄호 문자열이라면, ST도 괄호 문자열이다.
  4. 모든 괄호 문자열은 위의 3개 규칙으로만 만들 수 있다.

이 문제에서는 괄호 문자열이 아닌 문자열이 나온다. 만약 문자열이 ‘(’와 ‘)’로만 이루어져 있고, 괄호 문자열이 아니라면, 그 문자열을 괄호ㄴㄴ문자열이라고 한다.

길이가 N인 괄호ㄴㄴ문자열 중에 사전순으로 K번째인 문자열을 출력하는 프로그램을 작성하시오. 그러한 것이 없으면 -1을 출력한다. ‘(’가 ‘)’보다 사전순으로 앞선다. 사전순으로 가장 앞서는 문자열은 $0$번째 문자열이다.

입력 형식

첫째 줄에 두 정수 N과 K가 주어진다.

출력 형식

첫째 줄에 문제의 정답을 출력한다.

예제 입력 1

4 0

예제 출력 1

((((

예제 입력 2

4 4

예제 출력 2

())(

예제 입력 3

6 63

예제 출력 3

-1

예제 입력 4

7 13

예제 출력 4

((())()

Comments

There are no comments at the moment.