JAVA/자바 기본 프로그래밍
Test090 배열의 배열(2차원 배열) (4)
ready J
2020. 9. 6. 20:41
※ 배열의 배열(다차원 배열)을 활용하여 다음과 같은 데이터를 요소로 취하는 배열(5*5)을 구성하고
그 결과를 출력하는 프로그램을 구현한다.
단, 배열을 구성하는 구문과 출력하는 구문은 별도로 작성할수 있도록 한다.
실행 예)
1 2 3 4 5 → 1 2 3 4 5 → i=0 j=0 → 1 출발
5 1 2 3 4 → 1 2 3 4 5 → i=1 j=1 → 1 출발
4 5 1 2 3 → 1 2 3 4 5 → i=2 j=2 → 1 출발
3 4 5 1 2 → 1 2 3 4 5 → i=3 j=3 → 1 출발
2 3 4 5 1 → 1 2 3 4 5 → i=4 j=4 → 1 출발
계속하려면 아무 키나 누르세요...
방법 ①
{ public static void main(String[] args) { // 배열의 배열 선언 및 메모리 할당 int[][] arr = new int[5][5]; for (int i = 0; i < arr.length; i++) { for (int j = i, n = 1; n <= 5 ; n++) { arr[i][j] = n; // 00 → 1 11 → 1 22 → 1 // 01 → 2 12 → 2 23 → 2 // 02 → 3 13 → 3 24 → 3 // 03 → 4 14 → 4 20 → 4 // 04 → 5 10 → 5 21 → 5 j++; if (j == 5) j = 0; } } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.printf("%3d",arr[i][j]); } System.out.println(); } } }
방법 ②
int[][] arr; int n = 1; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { if(n == 6) n = 1; arr[i][j] = n; n++; } n--; } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.printf("%3d",arr[i][j]); } System.out.println(); } } }
방법 ③
int[][] arr; int n; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { if(i == j) { n = 1; arr[i][j] = n; n++; } else { arr[i][j] = n; n++; } } if(i<4) n = arr[i+1][0] = arr[i][4]; } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.printf("%3d",arr[i][j]); } System.out.println(); }