이 글에서는 자바(Java)를 사용하여 하향 삼각형 별 패턴을 출력하는 방법을 단계별로 알아봅니다. 이 패턴은 여러 개의 for 반복문과 출력문을 조합하여 만들 수 있으며, 중첩 반복문의 동작 원리를 익히기에 좋은 대표적인 프로그래밍 예제입니다.
하향 삼각형 별 패턴이란?
하향 삼각형 패턴은 첫 번째 줄에 가장 많은 별이 출력되고, 아래로 내려갈수록 별의 개수가 한 개씩 줄어들며 오른쪽으로 점점 밀려나는 형태입니다. 각 줄 앞에 공백을 추가하고 별의 개수를 줄여가는 방식으로 구현합니다.
아래는 실제 실행 결과의 예시입니다.
입력 예시
행(row)의 개수를 8로 입력했다고 가정해 보겠습니다.
Enter the number of rows : 8
출력 결과
The downward triangle star pattern :
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*알고리즘
하향 삼각형 패턴을 구현하는 전체적인 흐름은 다음과 같습니다.
- 시작 – 프로그램을 실행합니다.
- 정수형 변수
i,j,k,my_input네 개를 선언합니다. - 사용자로부터 행의 개수를 입력받거나, 값을 직접 정의합니다.
- 두 개의 중첩
for반복문을 사용하여 문자 사이의 공백을 처리합니다. - 가장 안쪽 반복문이 끝나면 또 다른
for반복문을 통해 별(*)을 출력합니다. - 줄바꿈을 출력하여 다음 줄에 지정된 개수만큼의 문자가 나오도록 합니다.
- 결과를 화면에 표시합니다.
- 종료 – 프로그램을 마칩니다.
예제 1: 사용자 입력으로 출력하기
첫 번째 예제는 Scanner 클래스를 사용하여 사용자로부터 행의 개수를 직접 입력받는 방식입니다. 온라인 코딩 도구에서 직접 실행해 보면서 결과를 확인할 수 있습니다.
import java.util.Scanner;
public class DownwardTriangle{
public static void main(String args[]){
int i, j, k, my_input;
System.out.println("Required packages have been imported");
Scanner my_scanner = new Scanner(System.in);
System.out.println("A reader object has been defined ");
System.out.print("Enter the number of my_input : ");
my_input = my_scanner.nextInt();
System.out.println("The downward triangle star pattern : ");
for ( i= 0; i<= my_input-1; i++){
for ( j=0; j<=i; j++){
System.out.print(" ");
}
for ( k=0; k<=my_input-1-i; k++){
System.out.print("*" + " ");
}
System.out.println();
}
}
}코드 설명
- 첫 번째 반복문(
i)은 총 행의 수만큼 반복하며 각 줄을 담당합니다. - 두 번째 반복문(
j)은 현재 행 번호만큼 공백을 출력하여 별이 오른쪽으로 밀리게 합니다. - 세 번째 반복문(
k)은 남은 별의 개수(my_input - i)만큼 별과 공백을 출력합니다. System.out.println()으로 줄바꿈을 하여 다음 행으로 넘어갑니다.
실행 결과
Required packages have been imported
A reader object has been defined
Enter the number of my_input : 8
The downward triangle star pattern :
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*예제 2: 값 미리 정의해서 출력하기
두 번째 예제는 사용자 입력 없이 행의 개수를 코드 안에서 미리 정의한 뒤, 그 값을 콘솔에 출력하는 방식입니다. 테스트나 학습 목적으로 간편하게 사용할 수 있습니다.
public class DownwardTriangle{
public static void main(String args[]){
int i, j, k, my_input;
my_input = 8;
System.out.println("The number of rows is defined as " +my_input);
System.out.println("The downward triangle star pattern : ");
for ( i= 0; i<= my_input-1; i++){
for ( j=0; j<=i; j++){
System.out.print(" ");
}
for ( k=0; k<=my_input-1-i; k++){
System.out.print("*" + " ");
}
System.out.println();
}
}
}실행 결과
The number of rows is defined as 8
The downward triangle star pattern :
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*마무리
지금까지 자바에서 하향 삼각형 별 패턴을 출력하는 두 가지 방법을 살펴보았습니다. 핵심은 공백을 출력하는 반복문과 별을 출력하는 반복문을 적절히 조합하는 것입니다. 이 원리를 이해하면 피라미드 패턴, 다이아몬드 패턴 등 다양한 별 모양 패턴도 손쉽게 응용할 수 있습니다. 여러분도 행의 개수를 바꿔가며 직접 실행해 보세요!