[ Solution ]
package implement10994;
import java.util.*;
import java.io.*;
public class Main {
static char[][] star;
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = 1 + 2 * (n-1);
star = new char[m][m];
for(int i = 0; i < m; i++) {
for(int j = 0; j < m; j++) {
star[i][j] = ' ';
}
}
pointStar(0, m);
for(int i = 0; i < m; i++) {
for(int j = 0; j < m; j++) {
System.out.print(star[i][j]);
}
System.out.println();
}
}
public static void pointStar(int n, int m) {
for(int i = n; i < m; i++) {
star[n][i] = '*'; // 맨위 가로
star[m-1][i] = '*'; // 맨 아래 가로
star[i][n] = '*'; // 왼쪽 세로
star[i][m-1] = '*'; // 오른쪽 세로
}
if(m == 1) return;
pointStar(n+2, m-2);
}
}
하나하나 그려보다가,, 전체 칸의 규칙 찾는 것보다는 그냥 테두리에서부터 그리는 것이 가장 쉬워보여서 그 방법으로 구현했다. 띄워주는 칸까지 고려해주기보다는 모두 ' '으로 초기화 해주고, 별만 규칙을 찾아 밖에서 안으로 그려주었다.
m 범위가 잘못된 듯 싶습니다!