hahn

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

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

[백준 - JAVA] 별 찍기 - 23

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

13015번: 별 찍기 - 23 (acmicpc.net)

 

13015번: 별 찍기 - 23

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

www.acmicpc.net

http://boj.kr/d0ded80dd13f4deda8b4c46bb0e4b2ab

 

공유 소스 보기

 

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[] strArr = new String[inputNumber * 2 - 1];
		
		String pattern = "",
			   pattern1 = "**",
			   pattern2,
			   outSpace= " ",
			   inSpace ="";
		
		for(int i = 0; i < 5 + 4 * (inputNumber - 2); i++) {
			
			if(i < inputNumber || i >= 3 + 3 * (inputNumber - 2) ) {
				
				pattern += "*";
				
			}else {
				
				pattern += " ";
				inSpace += " ";
				
			}
			
		}
		
		strArr[0] = pattern;
		strArr[strArr.length - 1] = pattern;
		
		for(int i = 0; i < inputNumber - 2; i++) {
			
			pattern1 = "* " + pattern1.substring(1);
			
		}
		
		pattern2 = pattern1 + pattern1.substring(1);
		
		
		for(int i = 1; i < inputNumber - 1; i++) {
			
				inSpace = inSpace.substring(2);
				strArr[i] = outSpace + pattern1 + inSpace + pattern1;
				strArr[strArr.length - i - 1] =  outSpace + pattern1 + inSpace + pattern1;
				outSpace += " ";
				
		}
		
		strArr[inputNumber - 1] = outSpace + pattern2;
		
		for(int i = 0; i < strArr.length; i++) {
			
			System.out.println(strArr[i]);
			
		}
        
    }
    
}

 

안쪽 공백이 input - 2 인 것을 이용했고,

 

나머지 공백은 증감 규칙 찾아서 적절히 구현했음.

728x90
반응형

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

[백준 - JAVA] 쉽게 푸는 문제  (0) 2021.09.17
[백준 - JAVA] 30  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 22  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 21  (0) 2021.09.17
[백준 - JAVA] 별 찍기 - 20  (0) 2021.09.17