컴공댕이 공부일지

[java] 백준 ( 13015 별 찍기-23 ) 본문

문제 풀이/코딩 문제 풀이 모음

[java] 백준 ( 13015 별 찍기-23 )

은솜솜솜 2023. 3. 24. 16:50
728x90

13015 별찍기

실버 5

https://www.acmicpc.net/problem/13015

 

13015번: 별 찍기 - 23

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

www.acmicpc.net

 

정답코드

import java.util.Scanner;

public class EC3_1 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
	    int n=s.nextInt();
	
	    for(int i=0; i<(2*n)-1; i++) {
	        if(i==0 || i==((2*n)-2)) { //시작, 마지막 줄
	            for(int j=0; j<n; j++) {
	                System.out.printf("*");
	            }
	            for(int j=0; j<(2*n)-3; j++) {
	            	System.out.printf(" ");
	            }
	            for(int j=0; j<n; j++) {
	            	System.out.printf("*");
	            }
	        } else if(i==n-1) { //가운데 줄
	            for(int j=0; j<n-1; j++) {
	            	System.out.printf(" ");
	            }
	            for(int j=0; j<2; j++) {
	            	System.out.printf("*");
	                for(int k=0; k<(n-2); k++) {
	                	System.out.printf(" ");
	                }
	            }
	            System.out.printf("*");
	        } else if (i<n-1) { //시작~가운데 사이
	        
	            int d = Math.abs(n-1-i); 
	            for(int j=0; j<i; j++) {
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            for(int j=0; j<(n-2); j++) {
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            
	            for(int j=1; j<=(d*2)-1 ; j++){
	            	System.out.print(" ");
	            }
	            System.out.printf("*");
	            for(int j=0; j<(n-2); j++) {
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            
	        } else { //가운데~끝 사이
	        
	            int d = Math.abs(n-1-i);
	            for(int j=0; j<n-1-d; j++) {
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            for(int j=0; j<(n-2); j++) {
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            
	            for(int j=1; j<=(d*2)-1 ; j++){
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            for(int j=0; j<(n-2); j++) {
	            	System.out.printf(" ");
	            }
	            System.out.printf("*");
	            
	        }
	        System.out.printf("\n");
	    }
    
    
	}
}

 

별찍기 재밌엉.... 가로 세로로 나누고 처음 중간 끝 등등등 구간 별로 쇽쇽 나눠서 생각하다보면 금방 풀린다!

728x90
Comments