관리자 글쓰기
[백준] 2445번 : 별 찍기 - JAVA
2024. 11. 13. 17:17 - DoosanBaek

문제 분석 :

  • 주어진 숫자 N에 따라 상단과 하단이 대칭을 이루는 피라미드 형태의 별을 출력, 피라미드 폭은 입력 받은 N에 따라 결정

제약 조건 :

  • N은 1이상 100 이하의 정수
  • 별을 출력하는 줄 수는 2xN-1 줄
  • 상단과 하단이 대칭을 이루고, 중간 줄을 기준으로 좌우 대칭을 이루도록 별과 공백을 배치
  • 각 줄은 첫번째 줄에서 시작하여 N번 째 줄까지 점점 증가하고, N+1 번째 줄부터 2xN-1 번째 줄까지는 점점 감소함

의사 결정 :

  • 입력 받기: Scanner 를 사용하여 정수 N을 입력 받는다.
  • 위쪽 반 피라미드 생성 : 첫번째 줄 부터 N번째 줄까지 각 줄에 해당하는 별과 공백을 생성한다.
  • 아래쪽 반 피라미드 생성 : N-1 번째 줄부터 첫 번째 줄까지, 각 줄에 해당하는 별과 공백을 생성한다.
  • 결과를 출력

메모리 : 22392 KB

시간 : 496 ms


import java.util.Scanner;

public class weeok01_03 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int N = sc.nextInt();
//  위에부분
            for (int i = 1; i <= N; i++) {
                // 왼쪽 별
                for (int j = 0; j < i; j++) {
                    System.out.print("*");
                }
                // 가운데 공백
                for (int j = 0; j < 2 * (N - i); j++) {
                    System.out.print(" ");
                }
                // 오른쪽 별
                for (int j = 0; j < i; j++) {
                    System.out.print("*");
                }
                System.out.println();
            }
//             아래부분
            for (int i = N - 1; i > 0; i--) {
                // 왼쪽 별
                for (int j = 0; j < i; j++) {
                    System.out.print("*");
                }
                // 가운데 공백
                for (int j = 0; j < 2 * (N - i); j++) {
                    System.out.print(" ");
                }
                // 오른쪽 별
                for (int j = 0; j < i; j++) {
                    System.out.print("*");
                }
                System.out.println();
            }

            sc.close();
        }

}