hahn

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

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

[백준 - JAVA] 별 찍기 - 11

hahn 2021. 9. 16. 18:10
728x90
반응형

2448번: 별 찍기 - 11 (acmicpc.net)

 

2448번: 별 찍기 - 11

첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)

www.acmicpc.net

http://boj.kr/7700f688a10c41bfa7d7c270d1be766e

 

공유 소스 보기

 

www.acmicpc.net

더보기
import java.util.Scanner;

class Main{
    
    public static void main(String[] args){
        
       Scanner sc = new Scanner(System.in);
		
		int lineCount = sc.nextInt();
		
		String[] printArr = {"*", "* *", "*****"},
				 storeArr;
		
		String space = " ";
		
		storeArr = printArr;
		
		
		for(int i = 2; i <= lineCount / 3; i *= 2) {
			
			printArr = new String[lineCount];
			
			for(int j = 0; j < i * 3; j++) {
				
				space += " ";
				
			}
			
			for(int j = 0; j < i * 3; j++) {
				
				if(j >= i * 3 / 2) {
					
					space = space.substring(2);
					
					printArr[j] = storeArr[j % (i * 3 / 2)] + space + storeArr[j % (i * 3 / 2)];
					
				}else {
					
					printArr[j] = storeArr[j];
					
				}
				
				
			}
			
			storeArr = printArr;
			
		}
		
		if(space.equals("")) space = " ";
		
		for(int i = 1; i < lineCount; i++) {
			
			space += " ";
			
		}
		
		for(int i = 0; i < printArr.length; i++) {
			
			space = space.substring(1);
			
			System.out.println(space + printArr[i] + space);
			
		} 
        
    }
    
}

 

전에 했던 별 찍기

 

Botherahn :: 단계별로 풀어보기(재귀 - 별 찍기 - 10) (tistory.com)

 

단계별로 풀어보기(재귀 - 별 찍기 - 10)

2447번: 별 찍기 - 10 (acmicpc.net) 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데..

ahnstu.tistory.com

얘랑 비슷한 문제인데

 

다시 푸려니까 막막했다.

 

그래도 조금 고민하니까 똑같은 방식으로

 

진행되었다.

 

뭐 딱히 수학적으로 푼 것 같지는 않고,

 

다음 삼각형이 생성될 때

 

현재 삼각형의 맨 아랫줄의 길이와 같은

 

공백이 삼각형의 맨 윗줄 사이에 들어간다는 것과

 

1줄 늘어날 때마다 일정한 길이만큼 공백이 감소함을 확인할 수 있었고,

 

좌 공백 역시 이와 비슷한 규칙을 가지고 있다는 것이다.

 

이걸 이용해서 풀었는데 출력 형식 오류가 뜨길래

 

예제 출력의 오른쪽 공백에 해당되는 부분이 포함됨을 확인하고

 

 

그냥 뒤에 앞과 같이 공백 추가해줬다.

 

이걸 확인하고 나니까 굳이 공백을 변수 처리 안 하고도

 

해결할 수 있을 듯??

728x90
반응형

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

[백준 - JAVA] 별 찍기 - 13  (0) 2021.09.16
[백준 - JAVA] 별 찍기 - 12  (0) 2021.09.16
[백준 - JAVA] 별 찍기 - 9  (0) 2021.09.16
[백준 - JAVA] 별 찍기 - 8  (0) 2021.09.16
[백준 - JAVA] 별 찍기 - 7  (0) 2021.09.16