반응형
#2447 문제와 같이 이번 문제도 재귀 함수를 이용한 별찍기입니다.
문제는 프랙탈에서 자주 나오는 사이펀스키 삼각형(Sierpiński triangle)을 찍는 것입니다.
https://www.acmicpc.net/problem/2448
#2447 문제와 마찬가지로 캔버스를 만들고 재귀 함수를 이용하여 풀었습니다.
//------------------------------------------------
// baekjoon #2448 - Printing Stars - 11
// - by Aubrey Choi
// - created at 2019-08-04
//------------------------------------------------
#include <stdio.h>
#include <memory.h>
static char z[3*1048][6*1048+4];
void draw(int r, int c, int n)
{
const char *t[3] = { " * ", " * * ", "*****" };
if(n==3) { for(int i=0;i<3;i++, r++) memcpy(&z[r][c], t[i], 5); return; }
n>>=1;
draw(r, c+n, n); r+=n;
draw(r, c, n); draw(r, c+2*n, n);
}
int main()
{
int n, i, j;
scanf("%d", &n);
for(i=0;i<n;i++) for(j=0;j<2*n-1;j++) z[i][j]=' ';
draw(0, 0, n);
for(i=0;i<n;i++) puts(z[i]);
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[C/C++] 백준 #2458 키 순서(플로이드 워샬) (2) | 2023.05.11 |
---|---|
[Python] 백준 #2457 공주님의 정원(탐욕 알고리즘) (2) | 2023.05.08 |
[C/C++] 백준 #2447 별 찍기 - 10(재귀 함수) (0) | 2023.05.06 |
[C/C++] 백준 #2437 저울(탐욕 알고리즘) (2) | 2023.05.02 |
[C/C++] 백준 #2436 공약수(수학) (0) | 2023.05.02 |
댓글