이 글에서는 속이 빈(hollow) 직각삼각형 별(*) 패턴을 출력하는 방법을 알아보겠습니다. 이 패턴은 여러 개의 for 반복문과 print 문을 조합하여 만들 수 있습니다. 첫 번째 줄에는 별 하나가 출력되고, 마지막 줄에는 n개의 별이 모두 출력됩니다. 그 외의 중간 줄들은 줄의 시작과 끝에 정확히 두 개의 별만 출력되며, 두 별 사이에는 공백이 들어가 빈 공간처럼 보이게 됩니다.
아래는 동작 과정에 대한 예시입니다.
입력
사용자가 아래와 같은 값을 입력한다고 가정합니다.
크기를 입력하세요 : 8
출력
원하는 출력 결과는 다음과 같습니다.
속이 빈 직각삼각형 : * * * * * * * * * * * ********
알고리즘
1단계 - 시작 2단계 - i, j, k, my_input 네 개의 정수 변수를 선언합니다. 3단계 - 사용자로부터 필요한 값을 입력받거나 값을 직접 정의합니다. 4단계 - 두 개의 중첩 'for' 반복문을 사용하여 문자 사이의 공백을 만듭니다. 5단계 - 가장 안쪽 반복문을 순회한 후, 또 다른 'for' 반복문을 실행하여 필요한 문자를 출력합니다. 6단계 - 줄바꿈을 출력하여 다음 줄에 지정된 개수의 문자가 나오도록 합니다. 7단계 - 결과를 화면에 표시합니다. 8단계 - 종료
예제 1
다음 예제는 프롬프트를 통해 사용자로부터 크기를 입력받는 경우입니다.
import java.util.Scanner;
public class Hollowtangle{
public static void main(String[] args){
int my_input, k, i, j;
System.out.println("필요한 패키지가 임포트되었습니다");
Scanner my_scanner = new Scanner(System.in);
System.out.println("reader 객체가 정의되었습니다 ");
System.out.print("크기를 입력하세요 : ");
my_input = my_scanner.nextInt();
for( i=1;i<=my_input;i++){
if(i==1 || i==my_input)
for( j=1;j<=i;j++){
System.out.print("*");
} else {
for( j=1;j<=i;j++){
if(j==1 || j==i)
System.out.print("*");
else
System.out.print(" ");
}
}
System.out.println();
}
}
}
실행 결과
필요한 패키지가 임포트되었습니다 reader 객체가 정의되었습니다 크기를 입력하세요 : 8 ** * * * * * * * * * * ********
예제 2
다음 예제는 크기 값이 미리 정의되어 있으며, 해당 값을 콘솔에 바로 출력하는 경우입니다.
public class Hollowtangle{
public static void main(String[] args){
int my_input, i, j;
my_input = 8;
System.out.println("크기가 " +my_input+ "(으)로 정의되었습니다");
for( i=1;i<=my_input;i++){
if(i==1 || i==my_input)
for( j=1;j<=i;j++){
System.out.print("*");
} else {
for( j=1;j<=i;j++){
if(j==1 || j==i)
System.out.print("*");
else
System.out.print(" ");
}
}
System.out.println();
}
}
}
실행 결과
크기가 8(으)로 정의되었습니다 * ** * * * * * * * * * * ********