개발자 미니민의 개발스터디

12. Array 2차원 배열 + 퀴즈

by mini_min

◾ 2차원 배열 

int[][]a = new int[3][4];

 

◾ 2차원 배열에서 각 열의 수를 다르게 메모리 할당

int[][] a = new int[3][];	//행수만 메모리할당 // 메모리 할당을 해야 쓸 수 있다.

// 각 행의 메모리 할당
a[0] = new int[4];
a[1] = new int[3];
a[2] = new int[5];

 

◾ 2차원 배열 초기화 

int [][]a = new int[][] {{10,20,30},{40,50,60},{70,80,90},{100,110,120}};
int [][]b = new int[][] {{1,2,3,4},{5,6},{7,8,9,10,11}};

System.out.println("a배열 행수 : " + a.length);
System.out.println("a[1] 열수 : " + a[1].length);

System.out.println("b배열 행수 : " + b.length);
System.out.println("b[1] 열수 : " + b[1].length);

System.out.println("\na 배열...");
for(int i=0; i<a.length; i++) {
    for(int j=0; j<a[i].length; j++) {
        System.out.printf("%5d", a[i][j]);
    }
    System.out.println();
}

System.out.println("\nb 배열...");
for(int i=0; i<b.length; i++) {
    for(int j=0; j<b[i].length; j++) {
        System.out.printf("%5d", b[i][j]);
    }
    System.out.println();
}

 

◾ 5행 5열의 배열에 1~25까지 수 ㄹ 모양으로 출력

짝수가 되는 행에서는 맨 뒤 위치부터 저장한다. a[i][4-j] = n;

int[][]a = new int[5][5];
int n=0;

// 배열에 메모리 할당하기
for(int i=0; i<5; i++) {	//행
    for(int j=0; j<5; j++) {	//열
        n++;

        if(i%2==0) {
        a[i][j] = n;
        }else {
        a[i][4-j] = n;
        }
    }
}

 

◾ 5행 5열 배열에 'A'부터 'Z'까지 출력 

char[][]a = new char[5][5];
char c = 'A';


for(int i=0; i<5; i++) {
    for(int j=0; j<5; j++) {
        a[4-j][i] = c++;

    }
}

for(int i=0; i<5; i++) {
    for(int j=0; j<5; j++) {
        System.out.printf("%3c", a[i][j]);

    }
    System.out.println();
}

 

◾ 4행 5열의 배열의 1~20 수를 채우기

아래로 향하게 ㄹ 자 모양 만들기

int [][]a = new int[4][5];
int n=0;

for(int i=0; i<5; i++) {
    for(int j=0; j<4; j++) {
        n++; //채울 수

        if(i%2==0) {
            a[j][i] = n;
        } else {
            a[3-j][i] = n;
        }

    }
}

for(int i=0; i<4; i++) {
    for(int j=0; j<5; j++) {
        System.out.printf("%5d", a[i][j]);
    }
    System.out.println();
}

 

◾ 5행 5열 배열에 15까지의 수를 역삼각형으로 추출

int [][]a = new int[5][5];
int n = 0;

for(int i=0; i<5; i++) {
    for(int j=i; j<5; j++) {

        n++;
        a[i][j] = n;

    }
}

 

◾ 5행 5열 배열에 1~25 수 까지 대각선으로 출력

int[][]a = new int[5][5];
int n = 0;
int k;

for(int i=0; i<8; i++) {
    for(int j=0; j<5; j++) {
        k = i-j;
        if(k<0 || k>4) {
            continue;
        }
        n++;
        a[j][k] = n;

    }
}

for(int i=0; i<5; i++) {
    for(int j=0; j<5; j++) {
        System.out.printf("%4d", a[i][j]);
    }
    System.out.println();
}

 

◾~Z 까지 문자를 난수를 이용해 발생된 문자를 4행 4열 배열에 우선 대입하여 출력

char[][]c = new char[4][4];

for(int i=0; i<4; i++) {
    for(int j=0; j<4; j++) {

    c[i][j] = (char)((Math.random()*26)+65);	



    //중복 영문자 검사
    gogo:
    for(int a=0; a<=i; a++) {			// 1~@@행까지 포함해서 비교하면 되기 때문에 a<=i 
        for(int b=0; b<4; b++) {		//열은 갯수 정해짐 4개까지
            if(a==i && b>=j) {
                break gogo;
            }

            if(c[i][j] == c[a][b]) {	//비교하기
                j--;
                break gogo;
            }


        }


    }


}

}



for(int i=0; i<4; i++) {
    for(int j=0; j<4; j++) {
        System.out.printf("%4c", c[i][j]);
    }
    System.out.println();
}

 

 

 

 

 

 

 

 

'개발 공부중 > 📑 코드 복습' 카테고리의 다른 글

1. JAVA 객체와 클래스  (2) 2023.02.24
13. Array 정렬 (버블,삽입,선택 정렬)  (0) 2023.02.24
11. Array 배열 + 퀴즈  (0) 2023.02.24
10. while 문  (0) 2023.02.24
* 연산 퀴즈  (0) 2023.02.23

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기