이 글에서는 자바(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)만큼 별(*)을 출력하여 오른쪽 아래로 향하는 직각삼각형 모양을 완성합니다.