반응형
문제
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다.
크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다.
*** * * ***
N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다.
입력
첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다.
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
3 x 3의 경우 1,1 이 공백 (1x1) 영역임
9 x 9 의 경우 3~5 이 공백 ( 3x3 영역임)
27 x 27 이라면 9~17이 공백(9x9 영역)
즉 num이 1x1이 될때까지 3으로 나눠가면서 현재 사이즈에 대해서 해당 좌표가
나눴을 떄의 몫을 3으로 나눈 나머지가 1이라면 해당 사이즈 내의 좌표는 공백이다.
만약 공백이 아닌데 사이즈가 1이면 별표.
반복되는 기하학적 패턴 => 프랙탈
#include <iostream>
using namespace std;
void star(int i, int j, int num)
{
if ((i / num) % 3 == 1 && (j / num) % 3 == 1) {
cout << ' ';
}
else
{
if (num == 1)
cout << '*';
else
star(i, j, num / 3);
}
}
int main() {
int num;
cin >> num;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < num; j++)
star(i, j, num);
cout << '\n';
}
}
반응형
'Algorithm' 카테고리의 다른 글
[브루트 포스 단계] 백준 2798번 블랙잭 (0) | 2020.09.23 |
---|---|
[재귀 단계] 백준 11729번 하노이 탑 (0) | 2020.09.22 |
[재귀 단계] 백준 10870번 피보나치 수 5 (0) | 2020.09.22 |
[재귀 단계] 백준 10872번 팩토리얼 (0) | 2020.09.22 |
[수학 2 단계] 백준 1002번 터렛 (0) | 2020.09.21 |