코드 그라데이션
JAVA 별찍기 (6) 직각삼각형 모양 (3) 본문
만들어야 하는 모양
브레인스토밍
- 별 개수는 점차 줄어들고, 공백의 수는 늘어난 다는 점을 착안하면 된다.
- 그런데 이것도 좌측 정렬 중심이므로 별이 찍히는 개수만 조절해주면 된다.
- 굳이 공백은 고려 대상은 아니다.
- 별은 1행에서 5개, 2행에서 4개, 3행에서 3개, 4행에서 2개, 5행에서 1개
=> 규칙적으로 행에서 하나씩 감하는 모습을 보이고 있다.
행별 정리하면
for(int i = 0; i < 5; i++) {
System.out.print("*");
}
System.out.println(); // 1행
for(int i = 0; i<4; i++) {
System.out.print("*");
}
System.out.println(); // 2행
for(int i = 0; i<3; i++) {
System.out.println("*");
}
System.out.println(); // 3행
for(int i = 0; i<2; i++) {
System.out.println("*");
}
System.out.println(); // 4행
for(int i = 0; i<1; i++) {
System.out.println("*");
}
System.out.println(); // 5행
이렇게 나온다.
이를 중첩 for문 화 시켜서,
임시로 i 조건식의 내용을 k라고 둬버리면
for(int j = 0; j<5; j++) {
for (int i = 0; i < k; i++) {
System.out.print("*");
}
System.out.println();
}
k를 j에 관한 식으로 바꿔주면 된다.
j 0 1 2 3 4
k 5 4 3 2 1
k를 j에 관한 식. j 0 -> 0+5 5-0
j 1 -> 1+3 5-1
j 2 5-2
j 3 5-3
j 4 5-4
즉, 발견한 규칙성 있는 식은,
k= 5-j
따라서 이 치환한 값을 대입한
풀이 코드
for(int j = 0; j<5; j++) {
for (int i = 0; i < 5-j; i++) {
System.out.print("*");
}
System.out.println();
}
전체 코드
package megait.backend_lecture._230320;
public class Star06 {
public static void main(String[] args) {
for(int j = 0; j<5; j++) {
for (int i = 0; i < 5-j; i++) {
System.out.print("*");
}
System.out.println();
}
}
}
728x90
'Java > 간단한 Quiz' 카테고리의 다른 글
JAVA 별찍기 (7) 직각삼각형 모양 (4) (0) | 2023.03.23 |
---|---|
JAVA 별찍기 (5) 마름모(다이아몬드) 모양 (0) | 2023.03.23 |
JAVA 별찍기 (4) 피라미드 모양 (0) | 2023.03.23 |
JAVA 별찍기 (3) 직각삼각형 모양 (2) (0) | 2023.03.23 |
JAVA 별찍기 (2) 직각삼각형 모양 (0) | 2023.03.22 |
Comments