반응형

👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇

 

 

 

 

2차원 배열이란 ? 

행과 열로 구성된 배열

선언 방법

-  자료형[][] 변수명 = new 자료형 [행크기][열크기];

-  자료형 [][] 변수명 = { {} , {} } ; 

해당 사진의 배열을 선언 시 행 : 5 열 : 6

>> int [][] a = new int [5][6];

>> int [][] a = { {6,5,4,3,2,1} ,

                       {12,11,10,9,8,7},

                      {18,17,16,15,14,13},

                      {24,23,22,21,20,19},

                     {30,29,28,27,26,25}  };

으로 선언할 수 있다.

 

숫자 6의 위치 

>> 행 0 , 열 0 

>> a [0][0]로 표현한다 

 

숫자 22의 위치 

>> 행 3 , 열 2 

>> a [3][2]로 표현한다 

 

 

 

 

 

오늘의 문제

 

 

 

풀이

문제1

 int[][] arr = new int[5][6];  
  
for (int i = 0 , v = 6; i <5; i++) {  
    for (int j = 0; j < 6; j++) {  
        arr[i][j] = v;  
        v--;  
    }  
    v+=12;  
}  
  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        System.out.print(arr[i][j] + "\t");  
    }  
System.out.println(" ");  
}
문제2

int[][] arr = new int[5][6];  
  
for (int i = 0 , v = 30; i <5; i++) {  
    for (int j = 0; j < 6; j++) {  
        arr[i][j] = v;  
        v--;  
    }  
}  
  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        System.out.print(arr[i][j] + "\t");  
    }  
    System.out.println(" ");
문제3

char[][] arr = new char[5][6];  
char r = '*';  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        if (i < j) arr[i][j] = '0';  
        else arr[i][j] = r;  
    }  
}  
  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        System.out.print(arr[i][j] + "\t");  
    }  
    System.out.println(" ");  
}  
System.out.println("-----------------------------------");  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        if (arr[i][j] == '*') {  
            System.out.print(arr[i][j] + "\t");  
        } else {  
            arr[i][j] = ' ';  
            System.out.print(arr[i][j] + "\t");  
        }  
    }  
        System.out.println(" ");
문제4

int[][] arr = new int[5][6];  
int v = 1 , vv = 21;  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        if ( i == 0 && j == 0 ) arr[0][0] = v;  
        if ( i == 0 && j > 0 ) {  
            v+=j;  
            arr[i][j] = v;  
        }  
        if ( i > 0 ) {  
            if ( j+1 == 6 ) break;  
            else arr[i][j] = arr[i-1][j+1] + 1;  
        }  
    }  
}  
for (int i = 1; i < 5 ; i++) {  
    int x = i;  
    int y = 5;  
    for (int j = 0; j <= 5-i ; j++) {  
        if ( x+1 > 5 || y-1 < 0) break;  
        else {  
            arr[x][y] = vv;  
            x++;  
            y--;  
            vv++;  
        }  
    }  
}  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        System.out.print(arr[i][j] + "\t");  
    }  
    System.out.println();  
}
문제5

int[][] arr = new int[5][6];  
int v = 1;  
for (int i = 0; i < 5; i++) {  
    int cnt = 1;  
    switch (i) {  
        case 0:  
            for (int j = 0; j < 10; j++) {  
                if (v >= 7) {  
                    arr[cnt][5] = v;  
                    cnt++;  
                    v++;  
                } else {  
                    arr[i][j] = v;  
                    v++;  
                }  
            }  
            break;  
        case 1:  
            v = 18;  
            cnt = 0;  
            for (int j = 0; j < 7; j++) {  
                if (v >= 22) {  
                    arr[cnt + i][4] = v;  
                    cnt++;  
                    v++;  
                } else {  
                    arr[i][j] = v;  
                    v++;  
                }  
            }  
            break;  
        case 2:  
            v = 28;  
            for (int j = 1; j < 4; j++) {  
                arr[i][j] = v;  
                v++;  
            }  
            break;  
        case 3:  
            v = 27;  
            for (int j = 1; j < 4; j++) {  
                arr[i][j] = v;  
                v--;  
            }  
            break;  
        case 4:  
            cnt = 4;  
            v = 11;  
            for (int j = 0; j < 7; j++) {  
                if (cnt <= -1) {  
                    arr[i - (cnt * -1)][0] = v;  
                    v++;  
                    cnt--;  
                } else {  
                    arr[i][cnt] = v;  
                    v++;  
                    cnt--;  
                }  
            }  
    }  
}  
  
  
for (int i = 0; i < 5; i++) {  
    for (int j = 0; j < 6; j++) {  
        System.out.print(arr[i][j] + "\t");  
    }  
    System.out.println();  
}

 

 

문제 6번은 아직 풀지 못하였다.. 아직 공부 중 ㅠ 더 노력해야겠다.

( 5번은 솔직히 저것보다 더 쉽게 짤 수 있는 방법이 있었다. 이 부분도 다시 생각해 보고 수정할 예정이다 ) 

반응형
유리쯔의일상