[伯俊]No 2447-星を撮る10(JAVA)





ルール自体は見つけやすいですが、コードで実現することはどうしても考えられません.才能をうまく使えなかったので、もっと疲れました.結局グーグルで答えを検索しました( https://st-lab.tistory.com/95 )
import java.util.Scanner;
import java.io.*;
public class No2447_별찍기10 {
    static char [][] arr;
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        arr= new char[n][n];
        star(0,0,n,false);

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        for (int i = 0; i < n; i++) {
            bw.write(arr[i]); //한줄씩
            bw.write("\n");
        }
        bw.flush();
        bw.close();

    }


    public static void star(int x, int y, int n, boolean blank) {


        if (blank) { //공백일때
            for (int i=x;i< x+ n ; i++) {
                for (int j=y;j<y+n; j++) {
                    arr[i][j]=' ';
                }
            }
            return ;
        }

        if (n==1) { //더이상 쪼갤 수 없는 블록일때
            arr[x][y]='*';
            return ;
        }

        int size = n/3; //9개짜리 블럭의 크기
        int count=0;
        for (int i= x;i< x + n; i+=size) {
            for (int j=y;j< y+n; j+=size) {
                count++;
                if (count==5) {
                    star(i,j,size,true);
                }
                else {
                    star(i,j,size,false);
                }
            }
        }



        }
    }