알고리즘(BOJ)/Silver

백준 - 10994 별 찍기 19

ch.0 2022. 12. 7. 00:12


package test;

import java.util.Scanner;

//백준
public class Main {

	static String[][] array;

	public static void star(int start, int input) {
		if(start>input) return;
		
		
		int max = input - start;

		for (int i = start; i < max; i++) {
			for (int j = start; j < max; j++) {

				// 첫줄 마지막줄
				if (i == start || i == max - 1) {
					array[i][j] = "*";
				}
				if (j == start || j == max - 1 ) {
					array[i][j] = "*";
				}

			}
		}star(start+2, input);

	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int input = sc.nextInt();
		
		int size = 4 * (input - 1) + 1;
		array = new String[size][size];

		for (int i = 0; i < size; i++) {
			for (int j = 0; j < size; j++) {
				array[i][j] = " ";
			}
		}
		star(0, size);

		if (input <= 100 && input >= 1) {
			for (int i = 0; i < size; i++) {
				for (int j = 0; j < size; j++) {
					System.out.print(array[i][j]);
				}
				System.out.println();
			}
		}

	}

}

 

시작점이 위로부터, 왼쪽으로부터 2칸씩 줄어든 상태에서 시작한다

첫줄과 마지막줄은 별로 채워주고

첫열과 마지막열도 별로 채워준다

 

size는 1에서  4씩 커지니까 4 * (n-1) +1 로 했다