YunDev

[자료구조와 알고리즘] 다중 루프 본문

자료구조와 알고리즘

[자료구조와 알고리즘] 다중 루프

S준 2025. 1. 13. 21:38

반복문이 수행될 때 그 안에서 다시 반복되는 구조를 알아보고자 합니다. (이중 루프)

 for(int i = 1; i < 10; i++) {
            for(int j = 1; j < 10; j++) {
                System.out.print(i*j + " ");
            }
            System.out.println();
        }

이중 for문으로 1~9단까지의 곱셈표를 출력하는 간단한 코드입니다.
그리고 이러한 이중 루프를 응용하여 도형을 출력 할 수도 있습니다.

왼쪽 아래가 직각인 삼각형 메서드

 static void triangleLB(int N) { //왼쪽 아래가 직각인 삼각형
        for(int i = 1; i <= N; i++){
            for(int j = 1; j<=i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

static void triangleLU(int N) { //왼쪽 위가 직각인 삼각형
        for(int i = N; i >= 1; i--){
            for(int j = i; j>=1; j--) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

 static void triangleRB(int N) { //오른 쪽 아래가 직각
        for(int i = N; i >= 1; i--){
            for(int j = i-1; j>=1; j--) {
                System.out.print(" ");
            }
            for(int k=N; k>=i; k--) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

  static void triangleRU(int N) { //오른 쪽 위가 직각
        for(int i = N; i >= 1; i--){
            for(int j = N; j>i; j--) {
                System.out.print(" ");
            }
            for(int k=i; k>=1; k--) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

그리고 입력받은 값만큼 n단의 피라미드를 출력하는 코드도 작성해볼 수 있습니다.

 static void spira(int N) {
       for(int i = 1; i <= N; i++){
           for(int j = i; j<N; j++) {
               System.out.print(" ");
           }
           for(int k=1; k<=(i-1)*2+1; k++) {
               System.out.print("*");
           }
           System.out.println();
       }
    }

n단 만큼 출력하기 위해 먼저 N만큼 공백을 출력하게 하고 1씩 감소하여 마지막 N번째 행에는 공백이 출력되지 않게 합니다. 그리고 *는 (i-1)*2+1만큼 출력되게 하여 1->3->5 홀수 값을 가지며 피라미드 형식으로 출력되게 합니다.