[백준/C++] 2447번 별 찍기 - 10
2021. 4. 27. 17:56ㆍ알고리즘/재귀
728x90
반응형
문제: www.acmicpc.net/problem/2447
2447번: 별 찍기 - 10
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이
www.acmicpc.net
문제풀이
별을 board에 모두 찍어두고 재귀를 이용하여 가운데를 지우는 방식으로 문제를 풀었다.
코드
#include <iostream>
using namespace std;
char board[6566][6566];
void func(int x, int y, int n){
if(n==0)
return;
n /= 3;
for(int i=x+n; i<x+n*2; i++)
for(int j=y+n; j<y+n*2; j++){
board[i][j] = ' ';
}
func(x,y,n);
func(x,y+n,n);
func(x,y+n*2,n);
func(x+n,y,n);
func(x+n,y+n*2,n);
func(x+n*2,y,n);
func(x+n*2,y+n,n);
func(x+n*2,y+n*2,n);
}
int main(){
int n;
cin>>n;
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
board[i][j] = '*';
func(0,0,n);
for(int i=0; i<n; i++)
cout<<board[i]<<"\n";
return 0;
}
결과

728x90
반응형
'알고리즘 > 재귀' 카테고리의 다른 글
[백준/C++] 2448번 별 찍기 - 11 (0) | 2021.04.28 |
---|---|
[백준/C++] 17478번 재귀함수가 뭔가요? (0) | 2021.04.27 |
[백준/C++] 1074번 Z (0) | 2021.04.09 |
[백준/C++] 11729 하노이 탑 이동 순서 (0) | 2021.04.07 |
[백준/C++] 1629번 곱셈 (0) | 2021.04.06 |