코드 그라데이션
JAVA 별찍기 (7) 직각삼각형 모양 (4) 본문
출력해야 하는 모양
브레인스토밍
- 공백도 문자일 수 있다는 idea!
- 공백은 (" ") 이 모양으로 찍어주면 된다.
- 공백 0 별 다섯 / 공백 하나 별 넷 / ... 이렇게 지금 반복 되고 있어.
- 그러면, 공백을 찍는 for문과 / 별을 찍는 for문을 각각 만들어서 출력해주면 된다.
** 지금 변하는 값은? 공백의 수와 별의 수.
각각을 반복문으로 만들어 보면(행별)
for (int j = 0; j<0; j++) {
System.out.print(" "); // 공백 0개
}
for (int i = 0; i<5; i++) {
System.out.print("*"); // 별 5개
}
System.out.println("");
for (int j = 0; j<1; j++) {
System.out.print(" "); // 공백 1개
}
for (int i = 0; i<4; i++) {
System.out.print("*"); // 별 4개
}
System.out.println("");
for(int j = 0; j<2; j++ ) {
System.out.print(" "); // 공백 2개
}
for(int i = 0; i<3; i++) { // 별 3개
System.out.print("*");
}
System.out.println("");
for (int j = 0; j<3; j++) {
System.out.print(" "); // 공백 3개
}
for(int i = 0; i<2; i++) { // 별 2개
System.out.print("*");
}
System.out.println("");
for (int j = 0; j<4; j++) {
System.out.print(" "); // 공백 4개
}
for(int i = 0; i<1; i++) { // 별 2개
System.out.print("*");
}
System.out.println("");
이를 종합하고, 조건식에 들어갈 수치(식)를 일단 각각 x와 k로 치환한 식을 먼저 구조화해보면,
for(int k = 0; k<5; k++) {
for (int j = 0; j<x; j++) {
System.out.print(" ");
}
for (int i = 0; i<y; i++) {
System.out.print("*");
}
System.out.println("");
}
이거다!
먼저 x를 k에 관한 식으로 만든다.
k 0 1 2 3 4
i 5 4 3 2 1
k를 가지고 x로 만든다.
k 0 1 2 3 4
x 0 1 2 3 4
따라서 x = k 성립
그리고 y를 k에 관한 식으로 만들면?
k를 가지고 y로 만든다.(단, 변수는 오로지 k, 나머진 상수)
k 0, y = 5-0
k 1 y 5-1
k 2 y 5-2
k 3 y 5-3
k 4 y 5-4
추출한 식은?
5-k
따라서, 종합한 풀이는
for(int k = 0; k<5; k++) {
for (int j = 0; j<k; j++) {
System.out.print(" ");
}
for (int i = 0; i<5-k; i++) {
System.out.print("*");
}
System.out.println("");
}
전체 코드
public class Star07 {
public static void main(String[] args) {
for(int k = 0; k<5; k++) {
for (int j = 0; j<k; j++) {
System.out.print(" ");
}
for (int i = 0; i<5-k; i++) {
System.out.print("*");
}
System.out.println("");
}
}
}
728x90
'Java > 간단한 Quiz' 카테고리의 다른 글
JAVA 별찍기 (6) 직각삼각형 모양 (3) (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