개발인생/Altorithm

별 찍기 패턴 정리💫

forri 2025. 3. 11. 19:06

✅ 별 찍기 패턴 정리 (표)

패턴 유형 공백 개수 별 개수 공백 개수 반복문
(j 조건)
별 개수 반복문
(j 조건)
왼쪽 정렬 0 (없음) i + 1 없음 (공백 없음) j <= i
오른쪽 정렬 n - i - 1 i + 1 j < n - i - 1 j < i + 1
역삼각형 0 (없음) n - i 없음 (공백 없음) j < n - i
오른쪽 정렬된
역삼각형
i n - i j < i j < n - i
피라미드
(위쪽 + 아래쪽)
n - i - 1 2 * i + 1 j < n - i - 1 j < 2 * i + 1

✅ 유형 1: 왼쪽 정렬

*
**
***
****
*****
for (int i = 0; i < n; i++) {  // 행
    for (int j = 0; j <= i; j++) {  // 열 (별 개수 = 행 번호 + 1)
        System.out.print("*");
    }
    System.out.println();
}
  • i = 0 → *
  • i = 1 → **
  • i = 2 → ***
  • 별 개수 = i + 1

✅ 유형 2: 오른쪽 정렬

    *
   **
  ***
 ****
*****
for (int i = 0; i < n; i++) {  // 행
    for (int j = 0; j < n; j++) {  // 열
        if (j < n - i - 1)  // 공백 출력 조건
            System.out.print(" ");
        else
            System.out.print("*");
    }
    System.out.println();
}
  • 공백 개수 = n - i - 1
  • 별 개수 = i + 1

✅ 유형 3: 역삼각형

*****
****
***
**
*
for (int i = 0; i < n; i++) {  // 행
    for (int j = 0; j < n - i; j++) {  // 열 (별 개수 감소)
        System.out.print("*");
    }
    System.out.println();
}
  • i = 0 → *****
  • i = 1 → ****
  • i = 2 → ***
  • 별 개수 = n - i

✅ 유형 4: 오른쪽으로 정렬된 역삼각형

*****
 ****
  ***
   **
    *
for (int i = 0; i < n; i++) {  
    for (int j = 0; j < i; j++)  // 공백 출력
        System.out.print(" ");
    for (int j = 0; j < n - i; j++)  // 별 출력
        System.out.print("*");
    System.out.println();
}
  • 공백 개수 = i
  • 별 개수 = n - i
  • 공백을 먼저 찍고 별을 출력해서 오른쪽 정렬을 만든다.

✅ 유형 5: 피라미드

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
for (int i = 0; i < n; i++) {  // 위쪽 삼각형
    for (int j = 0; j < n - i - 1; j++) 
        System.out.print(" "); // 공백
    for (int j = 0; j < 2 * i + 1; j++) 
        System.out.print("*"); // 별
    System.out.println();
}
for (int i = n - 2; i >= 0; i--) {  // 아래쪽 역삼각형
    for (int j = 0; j < n - i - 1; j++) 
        System.out.print(" "); // 공백
    for (int j = 0; j < 2 * i + 1; j++) 
        System.out.print("*"); // 별
    System.out.println();
}
  • 위쪽 삼각형: 2 * i + 1개의 별을 출력
  • 아래쪽 삼각형: 2 * i + 1개의 별을 점점 줄여서 출력
  • 공백은 n - i - 1개를 출력하여 정렬 맞추기