2차원 배열
3행 2열의 배열
int arr[][] = new arr[3][2]
* 예제
int ary[][] = new int[5][5];
int num = 0;
for (int i = 0; i < ary[0].length; i++) {
for (int j = 0; j < ary[i].length; j++) {
num++;
ary[j][i] = num;
}
}
for (int j = 0; j < ary[0].length; j++) {
for (int i = 0; i < ary[j].length; i++) {
System.out.print(ary[j][i] + "\t");
}
System.out.println();
}
* 결과창
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
*예제
int ary[][] = new int[5][5];
int num = 0;
for (int i = 0; i < ary[0].length; i++) {
if (i % 2 == 0) {
for (int j = 0; j < ary[i].length; j++) {
num++;
ary[i][j] = num;
}
} else {
for (int j = ary[i].length - 1; j >= 0; j--) {
num++;
ary[i][j] = num;
}
}
}
for (int j = 0; j < ary[0].length; j++) {
for (int i = 0; i < ary[j].length; i++) {
System.out.print(ary[j][i] + "\t");
}
System.out.println();
}
* 결과창
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
*치환 개념으로 코드 간략화
int ary[][] = new int[5][5];
// 치환
int num = 0; // 1씩 증가
int start = 0; // 배열의 시작하는 인덱스
int end = ary.length - 1; // 배열의 끝 인덱스
int temp = 0; // 치환용 변수
int reverse = 1; // 양수1 혹은 음수1
for (int i = 0; i < ary[0].length; i++) {
for (int j = start; j != end + reverse; j += reverse) {
num++;
ary[i][j] = num;
}
temp = end;
end = start;
start = temp;
reverse = -reverse;
}
for (int j = 0; j < ary[0].length; j++) {
for (int i = 0; i < ary[j].length; i++) {
System.out.print(ary[j][i] + "\t");
}
System.out.println();
}
솔직히 더 지저분해보이지 간단해보이진 않는다..
'학습 기록 > Java' 카테고리의 다른 글
23.05.17 / Java / ArrayList (0) | 2023.05.29 |
---|---|
23.05.16 / Java / 메소드(Method) (0) | 2023.05.29 |
23.05.12 / Java / array (0) | 2023.05.12 |
23.05.10 / Java / 반복문(for문) (0) | 2023.05.10 |
23.05.09 / Java / 반복문 (0) | 2023.05.09 |