Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 상단 별 삼각형 패턴 출력하기

이 글에서는 자바(Java)를 사용하여 상단 별 삼각형 패턴을 출력하는 방법을 알아봅니다. 이 패턴은 여러 개의 반복문(for-loop)과 출력문을 조합하여 만들 수 있습니다.

아래는 실행 결과 예시입니다.

입력 예시

사용자가 다음과 같이 행(row)의 개수를 입력했다고 가정해 보겠습니다.

행의 개수 입력 : 8

출력 결과

상단 별 삼각형 패턴 :
              *
            * *
          * * *
        * * * *
      * * * * *
    * * * * * *
  * * * * * * *
* * * * * * * *

알고리즘

패턴을 출력하는 절차는 다음과 같습니다.

Step 1 - 시작
Step 2 - 정수형 변수 i, j, my_input을 선언합니다.
Step 3 - 사용자로부터 값을 입력받거나 값을 직접 정의합니다.
Step 4 - 중첩된 'for' 반복문을 사용하여 문자 앞에 들어갈 공백을 처리합니다.
Step 5 - 가장 안쪽 반복문이 끝나면 또 다른 'for' 반복문을 실행하여 필요한 문자(*)를 출력합니다.
Step 6 - 줄바꿈을 출력하여 각 줄마다 지정된 개수의 문자가 표시되도록 합니다.
Step 7 - 결과를 화면에 표시합니다.
Step 8 - 종료

예제 1 : 사용자 입력으로 패턴 출력하기

다음 예제는 사용자가 직접 행의 개수를 입력하면 그 값에 따라 패턴을 출력하는 방식입니다.

import java.util.Scanner;
public class UpperStarTriangle{
   public static void main(String args[]){
      int i, j, my_input;
      System.out.println("필요한 패키지를 가져왔습니다.");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("Scanner 객체가 정의되었습니다.");
      System.out.print("행의 개수를 입력하세요 : ");
      my_input = my_scanner.nextInt();
      System.out.println("상단 별 삼각형 패턴 :");
      for (i=0; i<my_input; i++){
         for (j=2*(my_input-i); j>=0; j--){
            System.out.print(" ");
         }
         for (j=0; j<=i; j++ ){
            System.out.print("* ");
         }
         System.out.println();
      }
   }
}

출력 결과

필요한 패키지를 가져왔습니다.
Scanner 객체가 정의되었습니다.
행의 개수를 입력하세요 : 8
상단 별 삼각형 패턴 :
              *
            * *
          * * *
        * * * *
      * * * * *
    * * * * * *
  * * * * * * *
* * * * * * * *

예제 2 : 미리 정의된 값으로 패턴 출력하기

다음 예제는 행의 개수를 코드 내부에 미리 정의해 두고, 그 값을 사용하여 콘솔에 패턴을 출력하는 방식입니다.

public class UpperStarTriangle{
   public static void main(String args[]){
      int i, j, my_input;
      my_input = 8;
      System.out.println("행의 개수는 " +my_input+ "으로 정의되었습니다.");
      System.out.println("상단 별 삼각형 패턴 :");
      for (i=0; i<my_input; i++){
         for (j=2*(my_input-i); j>=0; j--){
            System.out.print(" ");
         }
         for (j=0; j<=i; j++ ){
            System.out.print("* ");
         }
         System.out.println();
      }
   }
}

출력 결과

행의 개수는 8으로 정의되었습니다.
상단 별 삼각형 패턴 :
              *
            * *
          * * *
        * * * *
      * * * * *
    * * * * * *
  * * * * * * *
* * * * * * * *

핵심 로직 설명: 외곽의 for 반복문(i)은 출력할 행의 개수를 제어하고, 첫 번째 내부 반복문(j)은 왼쪽 여백을 만들기 위한 공백을 출력합니다. 공백의 개수는 2*(my_input-i)로 계산되어 위쪽 행일수록 더 많은 공백이 출력됩니다. 두 번째 내부 반복문은 현재 행 번호(i)만큼 별(*)을 출력하여 오른쪽 아래로 향하는 직각삼각형 모양을 완성합니다.