별 찍기 - 11
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10)
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
#include<iostream>
using namespace std;
void fill(char ** board, int Y, int X, int degree){
if(degree == 3){
board[Y][X] = '*';
board[Y+1][X-1] = '*';
board[Y+1][X+1] = '*';
board[Y+2][X-2] = '*';
board[Y+2][X-1] = '*';
board[Y+2][X] = '*';
board[Y+2][X+1] = '*';
board[Y+2][X+2] = '*';
return;
}
fill(board, Y, X, degree/2);
fill(board, Y + degree/2, X - degree/2, degree/2);
fill(board, Y + degree/2, X + degree/2, degree/2);
}
int main(){
int N;
scanf("%d", &N);
char ** board = new char*[N];
for(int i=0; i<N; i++){
board[i] = new char[N * 2];
}
for(int i=0; i<N; i++){
for(int j=0; j<N*2; j++){
board[i][j] = ' ';
}
}
fill(board, 0, N-1, N);
for(int i=0; i<N; i++){
for(int j=0; j<N*2; j++){
printf("%c", board[i][j]);
}
printf("\n");
}
for(int i=0; i<N; i++){
delete[] board[i];
}
delete[] board;
return 0;
}
'알고리즘' 카테고리의 다른 글
[백준] 11049 - 행렬 곱셈 순서 (0) | 2019.10.06 |
---|---|
[백준] 15681 - 트리와 쿼리 (0) | 2019.10.04 |
[백준] 1002 - 터렛 (0) | 2019.10.03 |
[백준] 1005 - ACM Craft (0) | 2019.10.03 |
[백준]1011 - Fly me to the Alpha Centauri (0) | 2019.01.15 |