Coding Test/백준 - JAVA

백준 2444번 별 찍기 - 7 (JAVA)

6uiw 2024. 12. 17. 02:45

📌문제

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

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

 

예제 입력)

5

 

 

예제 출력)

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

 

 

📌답

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String s = "*";
        String b = "";

        for(int i = 0; i<n; i++) {
            b+=" "; //첫번째 줄에 필요한 공백만큼 
        }
        
        StringBuilder sb = new StringBuilder(s); //별
        StringBuilder sb2 = new StringBuilder(b); //공백 
        
        for(int i = 0; i<2*n-1; i++) { //별 개수가 증가할 때
            if(i<n) {
                System.out.print(sb2.deleteCharAt(sb2.length()-1)); //공백 하나씩 감소
                System.out.println(sb);
                if(i==n-1) continue;
                sb.append("**"); //별 2개씩 증가 
                
            } else if(i<2*n-1){ //별 개수가 감소할 떄 
                sb.delete(sb.length()-2,sb.length()); //별 2개씩 감소
                System.out.print(sb2.append(' ')); //공백 하나씩 증가 
                System.out.println(sb);
            }
        }
    }
}

 

 

📌코멘트

나중에 다시 풀어보기

 

 

 

 

 


📢

1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.