안녕하세요, 작가 J입니다. 오늘은 Java로 역삼각형 모양의 별을 출력하는 프로그램을 만들어 보겠습니다. 이번 예제는 반복문을 활용하여 입력받은 행 개수만큼 별을 출력하는 문제입니다.
저번 삼각형 모양과는 약간 다른 문제입니다. 천천히 살펴보겠습니다.
[Java Festival 07] 입력받은 행 개수에 따라 역삼각형 모양 별 출력하기
행 개수를 입력 받아 다음과 같이 삼각형을 출력하시오.
문제 설명
이 문제는 사용자가 입력한 행 개수에 따라 역삼각형 모양으로 별을 출력하는 문제입니다. 첫 번째 행에는 입력한 행 개수만큼 별이 출력되고, 그 다음 행부터는 한 줄씩 별의 개수가 줄어들어 마지막 행에는 별 하나만 출력됩니다.
코드 풀이
먼저 이 문제를 해결하기 위한 간단한 자바 코드를 보겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("행 개수: ");
int row = sc.nextInt();
for (int i = row; i > 0; i--) { // 행 개수만큼 반복
for (int j = 0; j < i; j++) { // 각 행에 출력할 별의 개수만큼 반복
System.out.print("*");
}
System.out.println(); // 한 행이 끝나면 줄바꿈
}
sc.close();
}
}
위의 코드는 i를 row 갯수 만큼 시작합니다. i가 7이면 j는 i보다 적을때까지 반복되니깐 처음부터 별 7개를 출력하게 됩니다. i가 출력할 별의 개수라고 보시면 될 것 같습니다. 7, 6, 5 ...
조금 헷갈리신다고 하면 아래 코드를 보셔도 될 것 같습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("행 개수 : ");
int num = sc.nextInt();
for (int i = 0; i < num; i++) { // 행 개수 만큼 반복
for (int j = num; j > i; j--) { // 각 행에 출력할 별의 개수만큼 반복
System.out.print("*");
}
System.out.println();
}
}
}
위 코드는 i와 j를 역할을 바꾸었습니다. i는 그대로 행의 개수 만큼 반복하고 j가 7부터 시작하여 i만큼 점점 작아지는 구조입니다. 저는 아래의 코드가 저한테 좀 익숙한 것 같습니다.
이렇게 두 코드 다 정답은 없으며, 이 방법외에도 여러분들이 이해하기 쉽게 코드를 짜시길 바랍니다.
마무리
이 예제는 작은 숫자부터 시작해 반복문의 작동 방식을 이해하는 데 큰 도움이 됩니다. 반복문의 조건과 변수를 조절하여 원하는 패턴을 출력하는 방법을 배우면, 더 복잡한 패턴 출력 문제도 쉽게 해결할 수 있습니다.
순서대로 원래의 삼각형 별찍기를 제대로 이해하지 않으셨다면, 이 문제의 풀이에 어려움을 겪을 수 있습니다. 그만큼 중첩 for문의 돌아가는 구조와 패턴을 익히셔야 됩니다.
오늘은 주말이라 포스팅이 조금 많네요. 그래도 열심히 달려보도록 하겠습니다.
여러분들도 화이팅입니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 08. 정수를 입력받아 1의 자리에서 반올림하기 (0) | 2024.06.23 |
---|---|
[Java Festival] Bonus 01. 숫자 입력 및 뺄셈 프로그램 (0) | 2024.06.22 |
[Java Festival] 06. 수열을 이용한 계산 문제 해결하기 (0) | 2024.06.22 |
[Java Festival] 05. 입력받은 행 개수에 따라 별 출력하기 (0) | 2024.06.22 |
[Java Festival] 04. 거스름돈 문제 해결하기 (0) | 2024.06.21 |