아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

분할된 프랙탈

면접 대비

시간 제한1초메모리 제한128 MB

요약
행 번호가 아래에서 위로 증가하는 격자에서 n번 분할한 정사각형 프랙탈의 일부 직사각형을 출력합니다.
난이도

보통10점 중 5점

유형
재귀, 구현, 분할 정복, 행렬
정답자
아직 제출이 없습니다

문제

프랙탈은 부분이 전체와 똑같은 모양(다만 더 작은 크기)으로 나타나는 성질을 가진 도형이다. 여기서는 하나의 특정한 프랙탈을 다루며, 만드는 과정을 반복하여 이 프랙탈을 근사한다.

한 변의 길이가 11인 꽉 찬 정사각형에서 시작한다. 예를 들어:

* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *

가운데에서 한 변의 길이가 13\dfrac{1}{3}인 정사각형을 제거한다:

* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *

그 결과는 아래 그림처럼 한 변의 길이가 13\dfrac{1}{3}인 정사각형 88개와 같다. 정사각형 사이의 간격은 설명을 위한 것일 뿐 실제 프랙탈에는 나타나지 않는다.

* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *

* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *
* * * * * * * * *                       * * * * * * * * *

* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *
* * * * * * * * *   * * * * * * * * *   * * * * * * * * *

각 정사각형에 같은 과정을 다시 적용하면 22번 반복한 뒤의 그림을 얻는다:

* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *       * * * * * *       * * * * * *       * * *
* * *       * * * * * *       * * * * * *       * * *
* * *       * * * * * *       * * * * * *       * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * *       * * *                   * * *       * * *
* * *       * * *                   * * *       * * *
* * *       * * *                   * * *       * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *       * * * * * *       * * * * * *       * * *
* * *       * * * * * *       * * * * * *       * * *
* * *       * * * * * *       * * * * * *       * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *

이제 여덟 개의 정사각형은 각각 첫 번째 반복 결과의 복사본이므로, 각각 여덟 개의 채워진 정사각형을 담아 모두 6464개가 된다. 같은 과정을 한 번 더 적용하면 33번 반복한 뒤의 그림을 얻는다:

* * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * *   * *   * *   * *   * *   * *   * *   * *   *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *       * * * * * *       * * * * * *       * * *
*   *       *   * *   *       *   * *   *       *   *
* * *       * * * * * *       * * * * * *       * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * *   * *   * *   * *   * *   * *   * *   * *   *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * *                   * * * * * * * * *
*   * *   * *   *                   *   * *   * *   *
* * * * * * * * *                   * * * * * * * * *
* * *       * * *                   * * *       * * *
*   *       *   *                   *   *       *   *
* * *       * * *                   * * *       * * *
* * * * * * * * *                   * * * * * * * * *
*   * *   * *   *                   *   * *   * *   *
* * * * * * * * *                   * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * *   * *   * *   * *   * *   * *   * *   * *   *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *       * * * * * *       * * * * * *       * * *
*   *       *   * *   *       *   * *   *       *   *
* * *       * * * * * *       * * * * * *       * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * *   * *   * *   * *   * *   * *   * *   * *   *
* * * * * * * * * * * * * * * * * * * * * * * * * * *

실제 프랙탈은 이 과정을 무한히 반복했을 때 얻어지는 도형이다. 예상대로 이 프랙탈의 88개 부분은 각각 전체 프랙탈을 13\dfrac{1}{3}로 축소한 정확한 복사본이다.

nn번 반복한 (n≤5)(n \le 5) 뒤 도형의 일부를 출력하는 프로그램을 작성하라. 도형은 3n×3n3^n \times 3^n 격자로 나타내며, 채워진 칸은 *로, 빈 칸은 공백으로 표시한다. 전체 도형은 한 번에 출력하기에 너무 크므로, 입력은 출력할 작은 직사각형 영역을 지정한다.

입력

첫 번째 줄에는 이어지는 테스트 케이스의 수를 나타내는 양의 정수 dd가 주어진다. 각 테스트 케이스는 다음 다섯 줄로 이루어진다:

  • nn: 반복 횟수 (0≤n≤5)(0 \le n \le 5)
  • bb: 출력할 직사각형의 아래쪽 행 (1≤b≤3n)(1 \le b \le 3^n)
  • tt: 출력할 직사각형의 위쪽 행 (b≤t≤3n)(b \le t \le 3^n)
  • ll: 출력할 직사각형의 왼쪽 열 (1≤l≤3n)(1 \le l \le 3^n)
  • rr: 출력할 직사각형의 오른쪽 열 (l≤r≤3n)(l \le r \le 3^n)

행은 아래에서 위로, 열은 왼쪽에서 오른쪽으로 번호가 매겨지며 모두 11부터 시작한다.

출력

각 테스트 케이스마다 지정된 직사각형을 한 행에 한 줄씩 출력한다. 위쪽 행 tt를 가장 먼저, 아래쪽 행 bb를 가장 마지막에 출력한다. 한 행에서는 ll열부터 rr열까지를 공백 하나로 구분하여 출력하며, 채워진 칸은 *로, 빈 칸은 공백으로 나타낸다. 연속한 테스트 케이스의 출력 사이에는 빈 줄을 하나 넣되, 마지막 테스트 케이스 뒤에는 빈 줄을 넣지 않는다.

예제3

  1. 예제 1

    입력
    1
    3
    2
    10
    5
    27
    
    예상 출력
    * * * * *                   * * * * * * * * *
    * * * * * * * * * * * * * * * * * * * * * * *
      * *   * *   * *   * *   * *   * *   * *   *
    * * * * * * * * * * * * * * * * * * * * * * *
        * * * * * *       * * * * * *       * * *
        *   * *   *       *   * *   *       *   *
        * * * * * *       * * * * * *       * * *
    * * * * * * * * * * * * * * * * * * * * * * *
      * *   * *   * *   * *   * *   * *   * *   *
    
  2. 예제 2

    입력
    1
    1
    1
    3
    1
    3
    
    예상 출력
    * * *
    *   *
    * * *
    
  3. 예제 3

    입력
    1
    0
    1
    1
    1
    1
    
    예상 출력
    *