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