본문 바로가기

알고리즘/BAEKJOON

10094 별 찍기 - 19

10994번: 별 찍기 - 19 (acmicpc.net)

 

10994번: 별 찍기 - 19

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

package Recursive;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Baekjoon_10994_별찍기19 {

	public static void main(String[] args) throws Exception {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		char[][] star = printStar(n);
		int size = (n - 1)*4 +1;
		
		for(int i = 0; i < size; i++) {
			for(int j = 0; j < size; j++) {
				System.out.print(star[i][j]);
			}
			System.out.println();
		}
	}

	private static char[][] printStar(int num) {
		int size = (num - 1)*4 +1;
		char[][] star = new char[size][size];
		for(int i = 0; i < size; i++) {
			Arrays.fill(star[i], ' ');
		}
		
		if(num == 1) {
			star[0][0] = '*';
			return star;
		}
		
		char[][] pre_star = printStar(num-1);
		for(int i = 0; i < size; i++) {
			for(int j = 0; j < size; j++) {
				if(i == 0 || i == size -1 || j == 0 || j == size -1) {
					star[i][j] = '*';
				}
				else if(2 <= i && i < size - 2 && 2 <= j && j < size -2) {
					star[i][j] = pre_star[i-2][j-2];
				}
			}
		}
		return star;
	}

}

 

 

'알고리즘 > BAEKJOON' 카테고리의 다른 글

13305 주유소  (0) 2021.08.23
1992 쿼드트리  (0) 2021.08.09
5568 카드 놓기  (0) 2021.08.07
2630 색종이 만들기  (0) 2021.08.04
11656 접미사 배열  (0) 2021.08.04