hahn

[백준 - JAVA] 별 찍기 - 22 본문

코딩테스트 연습/백준(JAVA)

[백준 - JAVA] 별 찍기 - 22

hahn 2021. 9. 17. 11:08
728x90
반응형

10997번: 별 찍기 - 22 (acmicpc.net)

 

10997번: 별 찍기 - 22

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

www.acmicpc.net

http://boj.kr/d1b00e3d32434caabc97a61d97d0e9f1

 

공유 소스 보기

 

www.acmicpc.net

더보기
import java.util.Scanner;

class Main{
    
    public static void main(String[] args){
        
        Scanner sc = new Scanner(System.in);
		
		int inputNumber = sc.nextInt();
		
		String[] printArr,
				 storeArr = null;
		
		String pattern = "*****",
			   pattern1 = "*   *";
		
		if(inputNumber == 1) {
			
			printArr = new String[1];
			printArr[0] = "*";
			
		}else {
			
			printArr = new String[7];
			printArr[0] = "*****";
			printArr[1] = "*";
			printArr[2] = "* ***";
			printArr[3] = "* * *";
			printArr[4] = "* * *";
			printArr[5] = "*   *";
			printArr[6] = "*****";
			
			storeArr = printArr.clone();
			
		}
		
		if(inputNumber > 2) printArr = new String[7 + 4 * (inputNumber - 2)];
		
		for(int i = 3; i <= inputNumber; i++) {
			
			pattern += "****";
			pattern1 = "*    " + pattern1.substring(1);
			
			printArr[0] = pattern;
			printArr[1] = "*";
			printArr[7 + 4 * (i - 2) - 2] = pattern1;
			printArr[7 + 4 * (i - 2) - 1] = pattern;
			printArr[2] = "* " + storeArr[0] + "**";
			printArr[3] = "* " + storeArr[1] + pattern1.substring(3);
			
			for(int j = 4; j < 7 + 4 * (i - 2) - 2; j++) {
				
					printArr[j] = "* " + storeArr[j - 2] + " *";
				
			}
			
			storeArr = printArr.clone();
			
		}
		
		for(int i = 0; i < printArr.length; i++) {
			
			System.out.println(printArr[i]);
			
		}
        
    }
    
}

 

1 > 2로 가는 패턴 못 잡아서

 

2를 기본 폼으로 잡고 진행했다.

 

728x90
반응형

'코딩테스트 연습 > 백준(JAVA)' 카테고리의 다른 글

[백준 - JAVA] 30  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 23  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 21  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 20  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 19  (0) 2021.09.17