본문 바로가기
Spec UP - Backend/나도코딩의 자바기본편

Chap_05. 다차원배열(2차원배열)과 다차원 배열 순회

by TIS_Ha 2023. 4. 13.
반응형

2차원 배열

String[][] 배열이름 = { {a,b,c}, {A,B,C} };

String 뒤에 [ ] 대괄호를 2쌍 입력하면 2차원 배열로 선언할 수 있다.

배열의 위치는 세로x가로 index 값을 기준으로 지정할 수 있다.(index는 0부터 시작)

ex) seats[0][1] 은 "A2" // 첫번째열 두번째행

 

A1~C5 세로 3열 * 가로 5행 2차원배열

        for (int i = 0; i < 3; i++) { //세로(열) 기준
            for (int j = 0; j < 5; j++) { //가로(행) 기준
                System.out.print(seats[i][j] + " ");
            }
            System.out.println();
        }

위와 같이 반복문을 중첩하여 세로(열) * 가로(행)을 순회할 수 있다.

 

다차원 배열의 행 개수가 각각 다른 경우 반복문을 수행할 횟수를 정수로 지정하는데 어려움이 있다.

이때 .length를 활용한다.

 

2차원 배열의 이름이 seats라고 가정할때,

seats.length 은 seats 배열의 세로 (열) 개수를 의미하며,

seats[i].length 은 seats배열의 i 열에 있는 가로 행 개수를 의미한다.

이를 이용해 아래와 같이 반복문을 실행할 수 있다.

        for (int i = 0; i < seats2.length; i++) { //세로(열) 기준
            for (int j = 0; j < seats2[i].length; j++) { //가로(행) 기준
                System.out.print(seats2[i][j] + " ");
            }
            System.out.println();
        }

영화관 좌석 예시( A1 A2 A3 A4 A5 B1 B2 B3 B4 B5 )를 볼때

알파벳 (A, B, C ... ) 과 숫자 (1~5)의 조합으로 반복되고 있음을 볼 수 있다.

이를 활용하여 2차원 배열을 반복문을 통해 생성해보자.

 String[][] seats3 = new String[10][15]; // 10열 * 15행의 2차원 배열 선언
 String[] eng = {"A","B","C","D","E","F","G","H","I","J"}; //2차원 배열에 들어갈 알파벳을 배열로 선언
 for (int i = 0; i < seats3.length; i++) { //세로(10번반복)
 for (int j = 0; j < seats3[i].length; j++) { //가로(15번 반복)
    seats3[i][j] = eng[i]+(j+1); //seats3[i][j]의 값을 알파벳(eng[i])과 숫자(j+1)의 조합으로 초기화
   }
 }

2차원 배열을 출력하면 아래와 같이 출력된다.

반응형

댓글