wisePocket

[JAVA] 기초문법 - 다차원 배열(Multidimensional Array) 생성과 초기화, 조회, 최대값, 최소값 연습 - 20 본문

Java & Algorithm/Java

[JAVA] 기초문법 - 다차원 배열(Multidimensional Array) 생성과 초기화, 조회, 최대값, 최소값 연습 - 20

ohnyong 2023. 7. 27. 13:51

다차원 배열 Multidimensional Array

다차원 배열이란 2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열을 의미

즉, 2차원 배열은 배열 요소로 1차원 배열을 가지는 배열

 


1. 기본 배열 생성

배열에 element 초기화(초기값) 반복문으로 넣기
        for(int i=0;i<array.length;i++){
            for(int j=0;j<array[i].length;j++){
                System.out.println("출력값 : "+ i +", "+ j);
                array[i][j] = 0; //0으로 초기화하기
            }
        }

 

2. 가변 배열 생성

배열 원소(element)마다 각기 다른 크기로 지정
        int[][] array2 = new int[3][];

        //배열 원소(element)마다 각기 다른 크기로 지정
        array2[0] = new int[2];
        array2[1] = new int[4];
        array2[2] = new int[1];
        
        //반복문으로 조회(초기값 넣지 않았으니,int형이라 0일거임)
        //초기화 해볼까 20으로 다넣어보겠음.
        for(int i=0;i< array2.length;i++){
            for(int j=0;j<array2[i].length;j++){
                array2[i][j] = 20;
                System.out.println(array2[i][j]);
            }
        }

 

3. 생성, 초기화값 할당까지 한번에

직접 element 값을 입력하여 할당까지
        int[][] array3 = {
                {10, 20},
                {10, 20, 30, 40},
                {10}
        };
        // 조회해보자.
        for(int i=0;i<array3.length;i++){
            for(int j=0;j<array3[i].length;j++){
                System.out.println(array3[i][j]);
            }
        }

 

4. 최대값 구하기 연습

       int[] arr = {3, 4, 8, 23, 1};

        //최대값 초기화 세팅(아직 최대값 아님, 비교를 위해 기준점을 잡는다고 생각해야 된다.)
        int max = arr[0];

        //최대값 구하기 로직 - 하나씩 비교를 시작하자
        for (int num:arr){
            if(num>max){ //만약 idx[0]부터 시작해서 넣은 값인 num이, 초기화한 max보다 크면,
                max = num; //num을 max에 넣자. 를 반복하는 것이 모든 element를 하나씩 점진적으로 비교.
            }
        }
        System.out.println("idx 0 element를 초기값으로 설정하고 옆으로  하나씩 비교를 하고 맞으면 max에 넣었더니 최대값은 : "+max);

 

5. 최소값 구하기 연습

        int[] arr2 = {51,2,15,123,6,19,9};

        int min = arr2[0];
        //일단 기준점을 idx[0]인 element 51을 기준으로 잡는다. 왜? for문을 idx 0부터 시작해서 비교할꺼니까.
        //만약 idx를 5처럼 중간에서 시작해버리면, for문이 애매해진다. 기본적으로 0부터 idx++로 1개씩 가는 로직이니까
        for(int element:arr2){
            if(element<min){ // max를 구한 for문과 동일한 검색 방법. 배열의 요소를 하나씩 점진적으로 검사
                min = element;
            }
        }
        System.out.println(min);