The Debugging Chronicles : "코드의 미학"

자바 디버깅 표 찍기 - 별 그리기2 본문

JAVA/자바 수업 내용

자바 디버깅 표 찍기 - 별 그리기2

sweetseonah1004 2024. 6. 29. 19:44

문제

*****
 ****
  ***
   **
    *

 

디버깅표

행의 높이를 i, 별의 개수를 j , 공백이 개수를 k라고 하자.

 

일단 가장 밖에 for 루프로 for(i = 1 ; i <= 5 ; i++)를 먼저 쓰고 시작할 수 있다.

for(i=1; i <=5; i ++){

//	뒤로 갈 수록 공백이 앞쪽에 생기므로 공백 공식을 먼저 쓴다
	for(int k; ????; k++){
    		System.out.println(" ");
    }
	for(int j; ????; j++){
    		System.out.println("*");
    }
}

 

 i         i <=5        k         ???         j           ???

-------------------------------------------
1            T           1            F           1            T

                                                      2           T

                                                      3           T

                                                      4            T

                                                      5            T

                                                      6            F  

2             T           1            T

                             2            F         1            T 

                                                      2            T

                                                      3            T

                                                      4            T

                                                      5            F

3              T            1           T

                               2           T

                               3           F          1           T

                                                        2           T

                                                        3           T

                                                        4           F

4               T            1          T

                                2           T

                                3           T

                                4           F         1            T

                                                        2            T

                                                        3            F

5                 T          1           T

                                2           T

                                3           T

                                4           T

                                5            F          1          T

                                                          2          F

------------------------------------------------

디버깅표로 조건 유추하기

- 별의 개수를 j 조건 유추

   1. j는 6보다 작으면서 

- 공백이 개수를 k 조건 유추

 

정답

int n = 5; // 높이
for (int i = 0; i < n; i++) { // 행을 제어
    for (int j = 0; j < i; j++) { // 각 행의 공백을 제어
        System.out.print(" ");
    }
    for (int k = n; k > i; k--) { // 각 행의 별을 제어
        System.out.print("*");
    }
    System.out.println(); // 줄 바꿈
}