안녕하세요, 작가 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);: 공백과 별을 합쳐 출력합니다.
마무리
이번 예제에서는 계단식으로 별을 출력하는 두 가지 방법을 다뤄보았습니다. 첫 번째 방법은 초기 별의 개수를 설정하고 반복문을 활용하여 공백과 별을 출력하는 방식이며, 두 번째 방법은 문자열을 사용하여 공백과 별을 조합하여 출력하는 방식입니다. 두 가지 방법 모두 이해하시는데 도움이 되길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 23. 2차원 배열 왼쪽으로 90도 회전하기 (0) | 2024.07.04 |
---|---|
[Java Festival] Bonus05. 정수 오름차순 정렬하기 (0) | 2024.07.04 |
[Java Festival] 21. 두 숫자 사이의 최소 거리를 찾기 (0) | 2024.07.04 |
[Java Festival] 20. 10진수 정수를 2진수로 변환하기 (0) | 2024.06.30 |
[Java Festival] 19. 단 수와 곱해질 수를 입력받아 구구단 출력하기 (0) | 2024.06.30 |