[백준] JAVA 2447: 별 찍기 - 10

2022. 2. 4. 20:01[백준] JAVA/재귀

https://www.acmicpc.net/problem/2447

 

2447번: 별 찍기 - 10

재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이

www.acmicpc.net


Solution:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	
	public static void main(String[] args) throws IOException {	
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int N = Integer.parseInt(br.readLine());
		
		char[][] star = new char[N][N];
		
		for(int i=0;i<N;i++) {
		
			for(int j=0;j<N;j++) {
				star[i][j] = '*';
			}
		}
		
		reStar(0,0,star,N);
		
		for(int i=0;i<N;i++) {
			
			for(int j=0;j<N;j++) {
				sb.append(star[i][j]);
			}
			sb.append("\n");
		}
		
		System.out.print(sb);
		
		br.close();
		
	}
	
	public static void reStar(int X, int Y, char[][] star, int N) {
		if(N>=3) {
			for(int i=N/3;i<N/3*2;i++) {
				
				for(int j=N/3;j<N/3*2;j++) {
					star[X+i][Y+j] = ' ';
				}
			}
			
			
			for(int i=0;i<3;i++) {
				
				for(int j=0;j<3;j++) {
					reStar(X+N/3*i, Y+N/3*j, star, N/3);
				}
			}
		}
	}
}

 


 

'[백준] JAVA > 재귀' 카테고리의 다른 글

[백준] JAVA 10870: 피보나치 수 5  (0) 2022.02.04
[백준] JAVA 10872: 팩토리얼  (0) 2022.02.04