과거⚰️

2차원배열 이론 || 기본 1 2 3

아무루 2020. 11. 6. 17:45
package day030;

public class Day030012차원배열이론 {
    public static void main(String[] args) {

        int[][] arr = new int[3][2];

        for(int i=0; i<arr.length; i++) {
            for(int j=0; j<arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
        }

        System.out.println(arr.length);
        System.out.println(arr[0].length);
        System.out.println(arr[1].length);
        System.out.println(arr[2].length);

        System.out.println(arr[0]); // [I@7852e922
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]);
        System.out.println(arr[1]); // [I@4e25154f
        System.out.println(arr[1][0]);
        System.out.println(arr[1][1]);
        System.out.println(arr[2]); // [I@70dea4e
        System.out.println(arr[2][0]);
        System.out.println(arr[2][1]);

    }
}


package day030;

public class Day030032차원배열기본1문제 {
    public static void main(String[] args) {

        int[][] arr = new int[3][3];

        int k = 1;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                arr[i][j] = 10 * k;
                k += 1;
            }
        }
        // 문제 1) 전체 합 출력
        // 정답 1) 450
        int tot = 0;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
               tot=tot+arr[i][j];
            }
        }
        System.out.println("1. ");
        System.out.println(tot);
        // 문제 2) 4의 배수만 출력
        // 정답 2) 20 40 60 80
        System.out.println("2. ");
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if(arr[i][j]%4==0){
                    System.out.println(arr[i][j]);
                }
            }
        }
        // 문제 3) 4의 배수의 합 출력
        // 정답 3) 200
        System.out.println("3. ");
        tot=0;
        int cnt = 0;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if(arr[i][j]%4==0){
                   tot = arr[i][j]+tot;
                   cnt++;
                }
            }
        }
        System.out.println(tot);
        // 문제 4) 4의 배수의 개수 출력
        // 정답 4) 4
        System.out.println("4. ");
        System.out.println(cnt);
    }
}


package day030;

import java.util.Scanner;

public class Day030042차원배열기본2문제 {
    public static void main(String[] args) {
        Scanner sc =  new Scanner(System.in);

        int[][] arr = new int[3][3];

        int k = 1;
        for(int i=0; i<3; i++) {
            for(int j=0; j<3; j++) {
                arr[i][j] = 10 * k;
                k += 1;
            }
        }

        // 문제 1) 인덱스 2개를 입력받아 값 출력
        // 예    1) 인덱스1 입력 : 1	인덱스2 입력 : 2
        //		   값 출력 : 60
        System.out.println("index 1 ");
        int in1 = sc.nextInt();
        System.out.println("index 2 ");
        int in2 = sc.nextInt();
        System.out.println(arr[in1][in2]);
        // 문제 2) 값을 입력받아 인덱스 2개 출력
        // 예    2) 값 입력 : 60
        //		   인덱스1 출력 : 1	인덱스2 출력 : 2
        System.out.println("enter it value");
        int value = sc.nextInt();

        for(int i=0; i<3; i++) {
            for(int j=0; j<3; j++) {
               if(value== arr[i][j]){
                   System.out.println(i);
                   System.out.println(j);
               }
            }
        }
        // 문제 3) 가장 큰 값의 인덱스 2개 출력
        // 정답 3) 2 2
        int max = 0;
        for(int i=0; i<3; i++) {
            for (int j = 0; j < 3; j++) {
                if(arr[i][j]>=max){
                    max=arr[i][j];
                }
            }
        }
        System.out.println(max);
        // 문제 4) 값 2개를 입력받아 값 교체
        System.out.println("enter value");
        int v = sc.nextInt();
        System.out.println("enter value");
        int v1 = sc.nextInt();

        int x = 0;
        int y =  0;
        int x1 = 0;
        int y1 = 0;

        for(int i=0; i<3; i++) {
            for (int j = 0; j < 3; j++) {
                if(arr[i][j]==v){
                    x=i;
                    y=j;
                }
            }
        }
        for(int i=0; i<3; i++) {
            for (int j = 0; j < 3; j++) {
                if(arr[i][j]==v1){
                    x1=i;
                    y1=j;
                }
            }
        }
        int temp = arr[x][y];
        arr[x][y]=arr[x1][y1];
        arr[x1][y1]=temp;
        for(int i=0; i<3; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}

package day030;

public class Day030052차원배열기본3문제 {
    public static void main(String[] args) {

        int[][] arr = {
                {101, 102, 103, 104},
                {201, 202, 203, 204},
                {301, 302, 303, 304}
        };

        int[] garo = new int[3];
        int[] sero = new int[4];

        // 문제 1) 가로 합 출력
        // 정답 1) 410, 810, 1210

        for(int i=0; i< arr.length; i++){
            for(int j=0; j<arr[i].length; j++){
                garo[i]=garo[i]+arr[i][j];
            }
        }
        // 문제 2) 세로 합 출력
        // 정답 2) 603, 606, 609, 612
        for(int i=0; i< 4; i++){
            for(int j = 0; 3 > j; j++){
                sero[i]=sero[i]+arr[j][i];
            }
        }
        for(int i=0; i< 3; i++){
            System.out.print(garo[i]+" ");
        }
        System.out.println();
        for(int i=0; i< 4; i++){
            System.out.print(sero[i]+" ");
        }
        System.out.println();
    }
}