🐣 알고리즘 삐약/💻 백준 삐약
96 삐약 : 백준 2447 | 별 찍기 - 10 [바킹독| 재귀 |JAVA]
우주수첩
2024. 9. 15. 16:00
728x90
https://www.acmicpc.net/problem/2447
package BKD_0x0B_Recursion;
import java.io.*;
public class BOJ_2447 {
static char[][] arr;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
arr = new char[N][N];
stars(0,0,N);
for(char[] arr_1 : arr){
for(char val : arr_1){
if(val!='*'){
bw.write(' ');
}else{
bw.write(val);
}
}
bw.write('\n');
}
bw.flush();
bw.close();
}
static void stars(int x, int y, int n) {
if (n == 1) {
arr[x][y] = '*';
return;
}
int newN = n / 3;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
// 중앙 블록일 때는 공백을 채운다
if (i == 1 && j == 1) {
arr[i][j]=' ';
continue;
};
// 중앙이 아닐 때는 재귀 호출하여 별을 그린다
stars(x + i * newN, y + j * newN, newN);
}
}
}
}
728x90