Page 39 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 39

11     for(i = 1; i <= n; i++) {
                                                                                     실행 결과
                         12       for(j = 1; j <= i; j++)
                                                                               몇 단 삼각형입니까? : 5
                         13         putchar('*');                              *
                         14       putchar('\n');                               **
                         15     }                                              ***
                         16                                                    ****
                                                                               *****
                         17   return 0;
                         18  }


                        직각 이등변 삼각형을 출력하는 회색 박스로 표시한 부분의 순서도를 그림 1-16에 나타냈으

                        며, 순서도의 오른쪽 그림은 변수 i와 j의 변화를 나타낸 것입니다. n의 값이 5인 경우 어떤 과
                        정으로 처리되는지 살펴보겠습니다. 바깥쪽 for문(행 루프)은 변수 i의 값을 1부터 n, 즉 5까지
                        증가시킵니다. 이것은 삼각형의 각 행에 대응하는 세로 방향 반복입니다. 안쪽 for문(열 루프)
                        은 변수 j의 값을 1부터 i까지 증가시키면서 출력합니다.


                        따라서 이 이중 루프는 아래처럼 처리됩니다.


                         i가 1 일 때 : j를 1 ⇨ 1로 증가시키면서 *를 출력합니다. 그리고 줄 바꿈합니다(*).
                         i가 2 일 때 : j를 1 ⇨ 2로 증가시키면서 *를 출력합니다. 그리고 줄 바꿈합니다(**).
                         i가 3 일 때 : j를 1 ⇨ 3로 증가시키면서 *를 출력합니다. 그리고 줄 바꿈합니다(***).
                         i가 4 일 때 : j를 1 ⇨ 4로 증가시키면서 *를 출력합니다. 그리고 줄 바꿈합니다(****).
                         i가 5 일 때 : j를 1 ⇨ 5로 증가시키면서 *를 출력합니다. 그리고 줄 바꿈합니다(*****).



                        이 삼각형을 위부터 1행 ~ n행이라고 하면 i행에 i개의 기호 문자 *를 출력하고 마지막 n행에
                        n개의 기호 문자 *를 출력합니다.


                               행 루프                 변수 i와 j의 변화(n은 5로 합니다.)
                              i : 1, 1, n           i    j
                                                    1    1
                               열 루프
                              j : 1, 1, i           2    1  2
                                                    3    1  2  3
                              *를 출력
                                                    4    1  2  3  4
                                                    5    1  2  3  4  5
                               열 루프

                               줄 바꿈


                               행 루프

                             [그림 1-16] 왼쪽 아래가 직각인 이등변 삼각형을 출력하는 순서도
                                                                                      01•기본 알고리즘  39
   34   35   36   37   38   39   40   41   42   43   44