Dev.baelanche

[백준 10994] 별 찍기 - 19 본문

Data Structure & Algorithm/PS - JAVA

[백준 10994] 별 찍기 - 19

baelanche 2019. 5. 13. 21:03
반응형

 

 

n 이 커질수록 네모의 개수가 비례하여 증가한다.

n 일때 출력될 가로, 세로 길이를 유추하고 분할정복으로 구현했다.

 

public class Main {
    
    static char a[][];
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        
        int len = 1;
        for(int i=1; i<n; i++) len += 4;
        a = new char[len][len];
        
        for(int i=0; i<len; i++) {
            for(int j=0; j<len; j++) {
                a[i][j] = ' ';
            }
        }
        
        drawStar(0, len);
        
        for(int i=0; i<len; i++) {
            for(int j=0; j<len; j++) {
                System.out.print(a[i][j]);
            }
            System.out.println();
        }
    }
    
    public static void drawStar(int s, int len) {
        for(int i=s; i<len; i++) {
            a[s][i] = '*'; //맨 위 가로줄
            a[len-1][i] = '*'; //맨 아래 가로줄
            a[i][s] = '*'; //왼쪽 세로줄
            a[i][len-1] = '*'; //오른쪽 세로줄
        }
        
        if(len == 1) return;
        
        drawStar(s+2, len-2);
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 2343] 기타 레슨  (0) 2019.05.13
[백준 13015] 별 찍기 - 23  (0) 2019.05.13
[백준 1120] 문자열  (0) 2019.05.11
[백준 2875] 대회 or 인턴  (0) 2019.05.11
[백준 1654] 랜선 자르기  (0) 2019.05.10
Comments