문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

6007 : 재귀 심화 — 프랙탈 트리

•시간제한: 2.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

6007 : 재귀 심화 — 프랙탈 트리

시간 2.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

재귀 호출을 사용하여 깊이가 $N$인 대칭형 프랙탈 트리 캐릭터 디자인을 2차원 화면에 그리는 프로그램을 작성하십시오.

프랙탈 트리 그리기 규칙:
- $N=0$인 경우: 크기 $1 \times 1$ 격자에 단 하나의 문자 *을 배치합니다.
- $N \ge 1$인 경우: 현재 노드 위치 *로부터 아래로 수직 방향으로 $step$ 크기만큼 가지 /와 \를 대각선 방향으로 벌려 나갑니다.
- 가지의 길이 $step$은 루트에서 $2^{N-1}$로 시작하여 자식 레벨로 갈 때마다 절반($\lfloor step/2 \rfloor$)으로 줄어듭니다.
- 가지의 끝에는 자식 노드 *이 위치하며, 여기서 다시 재귀적으로 자식 레벨의 프랙탈 트리가 시작됩니다.

[제약 조건]
• 깊이 $D$: $1 \le D \le 8$ (정수)
• 트리 가지 수 $B$: $2 \le B \le 4$ (정수)

입력 설명

첫째 줄에 프랙탈 트리의 재귀 깊이 $N$이 주어집니다.

[제약 조건]
• $0 \le N \le 6$

출력 설명

$N$단계 프랙탈 트리가 그려진 격자를 출력합니다. 각 줄의 오른쪽 끝 공백(Trailing Spaces)은 제거하여 출력합니다.

입력 예시
COPY
복사되었습니다!

2

출력 예시
COPY
복사되었습니다!

*
     / \
    /   \
   *     *
  / \   / \
 *   * *   *

도움

깊이 $N$의 트리 높이는 $2^N + N$, 폭은 $(2^{N+2}-3)$입니다. 각 레벨에서 가지 길이 $2^{N-1-k}$만큼 대각선으로 뻗어나갑니다.

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘