본문 바로가기
프로그래밍 기초/Java Festival

[Java Festival] 22. 계단식 별 출력하기

by 제이투더문 2024. 7. 4.

 

 안녕하세요, 작가 J입니다. 이번에는 계단식으로 별을 출력하는 프로그램을 작성해 보겠습니다. 이 예제는 반복문과 문자열을 활용하여 간단한 형태의 출력 형식을 만들어내는 데 도움이 될 것입니다.

 

[Java Festival 22] 계단식 별 출력하기

다음과 같은 결과를 출력하세요

 

 

 

 

코드 풀이

코드 풀이 1: 초기 값과 반복문을 활용한 방식

package Ex;

public class Ex22 {

    public static void main(String[] args) {
        int star = 1; // 출력할 별의 초기 개수 설정
        
        for (int i = 4; i >= 0; i--) { // 줄 수를 나타내는 반복문 (총 5줄)
            for (int j = 0; j < i; j++) { // 공백을 출력하는 반복문
                System.out.print(" ");
            }
            for (int j = 0; j < star; j++) { // 별을 출력하는 반복문
                System.out.print("*");
            }
            star++; // 다음 줄에 출력할 별의 개수를 증가
            System.out.println(); // 줄바꿈
        }
    }
}

 

 

1. 별의 초기 개수 설정

  • int star = 1;: 첫 번째 줄에 출력할 별의 개수를 1로 설정합니다.

2. 줄 수를 나타내는 반복문 (총 5줄)

  • for (int i = 4; i >= 0; i--): 반복문을 통해 줄 수를 설정합니다. 총 5줄이므로 i를 4부터 0까지 감소시킵니다.

3. 공백을 출력하는 반복문

  • for (int j = 0; j < i; j++): 현재 줄에서 출력할 공백의 개수를 설정합니다. 첫 번째 줄은 4개의 공백, 두 번째 줄은 3개의 공백, ..., 마지막 줄은 0개의 공백을 출력합니다.

4. 별을 출력하는 반복문

  • for (int j = 0; j < star; j++): 현재 줄에서 출력할 별의 개수를 설정합니다. 첫 번째 줄은 1개의 별, 두 번째 줄은 2개의 별, ..., 마지막 줄은 5개의 별을 출력합니다.

5. 별의 개수 증가 및 줄바꿈

 

  • star++;: 다음 줄에 출력할 별의 개수를 증가시킵니다.
  • System.out.println();: 줄바꿈을 실행합니다.

 

코드 풀이 2: 문자열을 사용한 방식

이번에는 문자열을 사용하여 공백과 별을 조합하여 출력하는 방식으로 문제를 해결해 보겠습니다.

 

package Ex;

public class Ex22Alternate {

    public static void main(String[] args) {
        int rows = 5; // 총 줄 수 설정
        
        for (int i = 1; i <= rows; i++) { // 줄 수를 나타내는 반복문 (총 5줄)
            String spaces = " ".repeat(rows - i); // 공백 문자열 생성
            String stars = "*".repeat(i); // 별 문자열 생성
            System.out.println(spaces + stars); // 공백과 별을 합쳐 출력
        }
    }
}

 

 

1. 공백 문자열 생성

  • String spaces = " ".repeat(rows - i);: 현재 줄에서 출력할 공백의 개수를 설정합니다. 첫 번째 줄은 4개의 공백, 두 번째 줄은 3개의 공백, ..., 마지막 줄은 0개의 공백을 생성합니다.
  • repeat 함수는 문자열을 지정된 횟수만큼 반복하여 새로운 문자열을 생성합니다.

2. 별 문자열 생성

  • String stars = "*".repeat(i);: 현재 줄에서 출력할 별의 개수를 설정합니다. 첫 번째 줄은 1개의 별, 두 번째 줄은 2개의 별, ..., 마지막 줄은 5개의 별을 생성합니다.

3. 공백과 별을 합쳐 출력

  • System.out.println(spaces + stars);: 공백과 별을 합쳐 출력합니다.

 

마무리

 

 이번 예제에서는 계단식으로 별을 출력하는 두 가지 방법을 다뤄보았습니다. 첫 번째 방법은 초기 별의 개수를 설정하고 반복문을 활용하여 공백과 별을 출력하는 방식이며, 두 번째 방법은 문자열을 사용하여 공백과 별을 조합하여 출력하는 방식입니다. 두 가지 방법 모두 이해하시는데 도움이 되길 바랍니다.

 

 프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!