시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB85417314124.956%

문제

"XYZ 문자열"이란 아래와 같은 문법에 의해 단계별로 만들어지는 일련의 문자열들을 뜻한다.

  1. "XYZ 문자열"은 세 개의 문자 X, Y, Z로만 이루어진다.
  2. 1단계 "XYZ 문자열"은 X로 시작한다.
  3. 다음 단계의 "XYZ 문자열"은 바로 이전 단계의 "XYZ 문자열"에서 아래와 같은 규칙에 따라 변형되어 만들어진다.
    • X는 YZ로 변형된다.
    • Y는 Z로 변형된다.
    • Z는 X로 변형된다.

위와 같은 문법에 따라 1단계부터 몇 단계의 "XYZ 문자열"을 차례로 적어 보면 아래와 같다.

  1. X
  2. YZ
  3. ZX
  4. XYZ
  5. YZZX
  6. ZXXYZ

N단계의 "XYZ 문자열"과 관련해서, 아래의 문제 중 하나를 푸는 프로그램을 작성하시오.

  1. N단계의 XYZ 문자열의 길이를 구한다.
  2. N단계의 XYZ 문자열에서 k번째 문자가 무엇인지 구한다.
  3. N단계의 XYZ 문자열에서 특정한 문자가 몇 번 나타나는지 구한다.

입력

첫째 줄에 문제 번호가 주어진다. 이는 1, 2, 3 중 하나이다. 이어서 둘째 줄에 자연수 N(1 ≤ N ≤ 100)이 주어진다. 문제 2인 경우는 셋째 줄에 자연수 k가, 문제 3인 경우는 셋째 줄에 X 또는 Y 또는 Z가 주어진다. k는 항상 N번째 문자열의 길이보다 작거나 같다.

출력

문제 1인 경우는 길이를 나타내는 정수를, 문제 2인 경우는 k번째 문자를, 문제 3인 경우는 특정한 문자가 나타난 횟수를 각각 첫째 줄에 출력하면 된다.

예제 입력 1

2
5
1

예제 출력 1

Y

예제 입력 2

1
7

예제 출력 2

7

예제 입력 3

3
7
Z

예제 출력 3

3

출처

  • 문제를 번역한 사람: author5