✅ 문제

행 개수를 입력 받아 다음과 같이 삼각형을 출력하시오.
✅ 추론 과정
- 코딩 처음 배우면 멘탈 나가는 별찍기 문제 (이중 for문)
바깥쪽 for문: 주로 바깥쪽 for문은 몇 개의 행(row)을 출력할지 결정
안쪽 for문: 각 행에 출력될 요소들의 개수를 제어하는 역할, 즉 해당 행에 어떤 요소를 출력할지 결정(별의 갯수)
입력받은 행 개수만큼 별을 출력하는데, 한줄씩 반복될 때마다 별이 하나씩 감소한다.
일단 첫 줄에서 출력되는 별의 개수가 행의 개수와 같기 때문에
바깥 포문의 i를 입력받은 숫자로 설정해주고 i를 감소시키면서 로직을 반복한다.
안쪽 포문의 j의 범위를 1부터 시작해서 i 까지로 설정해주면
i의 개수가 7 6 5 4 3 2 1이 되는 동안 별의 갯수가 7개에서 1개로 감소하게 된다.
i=7일때, j의 범위는 1부터 7 => 안쪽 for문 시행횟수 7번 => *******
i=6일때, j의 범위는 1부터 6 => 안쪽 for문 시행횟수 6번 => ******
i=5일때, j의 범위는 1부터 5 => 안쪽 for문 시행횟수 5번 => *****
.
.
.
.
i=1일때, j의 범위는 1부터 1 => 안쪽 for문 시행횟수 1번 => *
✅ 코드
import java.util.Scanner;
public class ex07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("행 개수 : ");
int num = sc.nextInt();
for (int i = num; i > 0; i--) {
for (int j = 1; j < i; n++) {
System.out.print("*");
}
System.out.println();
}
}
}
별찍기가 어려우신 분은 눈으로만 코드를 읽는 것보다 for문이 반복되는 동안
i와 j의 숫자가 어떻게 변하는지 손으로 써보면서 공부해보면 쉽게 이해할 수 있다
'코딩테스트 > JavaFestival(스마트인재개발원)' 카테고리의 다른 글
[자바페스티벌] 9번 - for문을 사용하여 A~Z까지 출력하기 (0) | 2024.03.21 |
---|---|
[자바페스티벌] 8번 - 정수를 입력 받아 1의 자리에서 반올림 한 결과 출력 (1) | 2024.03.20 |
[자바페스티벌] 6번 - (77*1) + (76*2) + (75*3) + ... + (1*77) 계산해서 결과 출력하기 (0) | 2024.03.20 |
[자바페스티벌] 1번 - 몸무게 입력 받고 감량 목표 달성 시 축하 메세지 띄우기 (0) | 2024.03.20 |
[자바페스티벌] 5번 - 별찍기 행 개수를 입력 받아 삼각형출력하기 (1) | 2024.03.20 |
✅ 문제

행 개수를 입력 받아 다음과 같이 삼각형을 출력하시오.
✅ 추론 과정
- 코딩 처음 배우면 멘탈 나가는 별찍기 문제 (이중 for문)
바깥쪽 for문: 주로 바깥쪽 for문은 몇 개의 행(row)을 출력할지 결정
안쪽 for문: 각 행에 출력될 요소들의 개수를 제어하는 역할, 즉 해당 행에 어떤 요소를 출력할지 결정(별의 갯수)
입력받은 행 개수만큼 별을 출력하는데, 한줄씩 반복될 때마다 별이 하나씩 감소한다.
일단 첫 줄에서 출력되는 별의 개수가 행의 개수와 같기 때문에
바깥 포문의 i를 입력받은 숫자로 설정해주고 i를 감소시키면서 로직을 반복한다.
안쪽 포문의 j의 범위를 1부터 시작해서 i 까지로 설정해주면
i의 개수가 7 6 5 4 3 2 1이 되는 동안 별의 갯수가 7개에서 1개로 감소하게 된다.
i=7일때, j의 범위는 1부터 7 => 안쪽 for문 시행횟수 7번 => *******
i=6일때, j의 범위는 1부터 6 => 안쪽 for문 시행횟수 6번 => ******
i=5일때, j의 범위는 1부터 5 => 안쪽 for문 시행횟수 5번 => *****
.
.
.
.
i=1일때, j의 범위는 1부터 1 => 안쪽 for문 시행횟수 1번 => *
✅ 코드
import java.util.Scanner; public class ex07 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("행 개수 : "); int num = sc.nextInt(); for (int i = num; i > 0; i--) { for (int j = 1; j < i; n++) { System.out.print("*"); } System.out.println(); } } }
별찍기가 어려우신 분은 눈으로만 코드를 읽는 것보다 for문이 반복되는 동안
i와 j의 숫자가 어떻게 변하는지 손으로 써보면서 공부해보면 쉽게 이해할 수 있다
'코딩테스트 > JavaFestival(스마트인재개발원)' 카테고리의 다른 글
[자바페스티벌] 9번 - for문을 사용하여 A~Z까지 출력하기 (0) | 2024.03.21 |
---|---|
[자바페스티벌] 8번 - 정수를 입력 받아 1의 자리에서 반올림 한 결과 출력 (1) | 2024.03.20 |
[자바페스티벌] 6번 - (77*1) + (76*2) + (75*3) + ... + (1*77) 계산해서 결과 출력하기 (0) | 2024.03.20 |
[자바페스티벌] 1번 - 몸무게 입력 받고 감량 목표 달성 시 축하 메세지 띄우기 (0) | 2024.03.20 |
[자바페스티벌] 5번 - 별찍기 행 개수를 입력 받아 삼각형출력하기 (1) | 2024.03.20 |