[백준] 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 |