| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 4 초 (추가 시간 없음) | 1024 MB | 2632 | 663 | 389 | 24.698% |
여는 괄호 (와 닫는 괄호 )를 이용해서 만들어지는 문자열 중에서 올바른 괄호열이란 다음과 같이 정의 된다.
()는 올바른 괄호열이다.(X)도 올바른 괄호열이다.예를 들어 (()(()))나 (())()()는 올바른 괄호열이지만, (()나 )((()()은 모두 올바른 괄호열이 아니다. 우리는 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 f[X]로 표시한다.
()] = 1예를 들어 몇 가지 올바른 괄호열들의 괄호값을 구해 보자.
()] = 1(())] = 2 × f[()] = 2 × 1 = 2()()] = f[()] + f[()] = 1 + 1 = 2()()()] = f[()] + f[()()] = 1 + 2 = 3(()())] = 2 × f[()()] = 2 × 2 = 4((()))] = 2 × f[(())] = 2 × 2 = 4()(())] = f[()] + f[(())] = 1 + 2 = 3(()())()(())] = f[(()())] + f[()(())] = 4 + 3 = 7두 개의 올바른 괄호열 A와 B를 읽고, 두 문자열의 괄호값 f[A]와 f[B]를 비교하는 프로그램을 작성하라. 즉, f[A] = f[B]인지, f[A] < f[B]인지, f[A] > f[B]인지를 판단하는 프로그램을 작성하라.
하나의 입력에서 T개의 테스트 케이스를 해결해야 한다.
첫 번째 줄에 테스트 케이스의 개수 T가 주어진다.
이후 T개의 테스트 케이스가 차례로 주어진다. 각 테스트 케이스의 형식은 다음과 같다.
각각의 테스트 케이스마다, 한 개의 줄에,
=,<,>을 출력한다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 3 | A의 길이와 B의 길이는 각각 6 이하이다. |
| 2 | 23 | A의 길이와 B의 길이는 각각 50 이하이다. |
| 3 | 13 |
|
| 4 | 61 | 추가 제약 조건 없음. |
1 (()) ()()
=
f[A] = f[(())] = 2이고, f[B] = f[()()] = 2이므로, f[A] = f[B]이다.
1 ()()() (()())
<
f[A] = f[()()()] = 3이고, f[B] = f[(()())] = 4이므로, f[A] < f[B]이다.
2 ((())) ()(()) (((()))) ()()()()()
> >
첫 번째 테스트 케이스: f[A] = f[((()))] = 4이고, f[B] = f[()(())] = 3이므로, f[A] > f[B]이다.
두 번째 테스트 케이스: f[A] = f[(((())))] = 8이고, f[B] = f[()()()()()] = 5이므로, f[A] > f[B] 이다.
Olympiad > 한국정보올림피아드 > KOI 2021 2차대회 > 초등부 3번