백엔드/나도코딩 자바
[나도코딩 자바 챕터5] 다차원 배열 순회해서 영화관 좌석을 출력해보자.
응개야
2023. 8. 28. 21:56

소규모 영화관 좌석표를 만든다고 가정을 해보자
A1 - A5 // A열의 1부터 5까지
B1 - B5 // B열의 1부터 5까지
C1 - C5 // C열의 1부터 5까지....
String[]
문자열을 사용
[]를 넣어 배열로 만들어준다.
예약어 뒤 변수를 넣고
{ }안에 좌석인 "A1" ... 값을 넣어주자.
String[] seatA = {"A1", "A2", "A3", "A4", "A5" };
String[] seatB = {"B1", "B2", "B3", "B4", "B5" };
String[] seatC = {"C1", "C2", "C3", "C4", "C5" };
차원을 하나더 만들 때마다 중괄호를 하나씩 추가한다고 생각하면 된다.
2차원 배열은 []를 한번 더 작성하면 된다.
[] [] 처럼... 중괄호 사이에 여러 값을 넣어주면 된다.
콤마(,)를 넣어서 1차원 값들을 차례대로 배열해주자.
// 3 x 5 크기의 2차원 배열
String[][] seats = new String[][]{
{"A1", "A2", "A3", "A4", "A5" },
{"B1", "B2", "B3", "B4", "B5" },
{"C1", "C2", "C3", "C4", "C5" }
Alt를 누른 상태에서 드래그 해보자.
블록을 선택할 때 간편하게 지정할 수 있다.

B2에 접근하려면
인덱스 순서가 0부터 시작하니
1,1 배열로 입력해보자.
seats[1][1] 하면 나온다.
// B2 에 접근하려면?
System.out.println(seats[1][1]);
C5에 접근하려면
인덱스 순서가 0부터 시작하니
2,4 배열로 입력해보자.
seats[2][4] 하면 나온다.
// C5 에 접근하려면?
System.out.println(seats[2][4]);
가령 영화관이 직사각형이 아니라 경우에 따라
앞쪽 좌석은 좁고
뒤쪽 좌석은 갯수가 많은 둥글게 지어진 곳이 있다고 치자.
// 첫 줄에는 3칸, 둘째 줄에는 4칸, 셋째 줄에는 5칸,
String[][] seats2 = {
{"A1", "A2", "A3" },
{"B1", "B2", "B3", "B4" },
{"C1", "C2", "C3", "C4", "C5" }
};
A3에 접근하려면 마찬가지로 배열 순서로
0,2에 출력하면 되겠다.
// A3 에 접근하려면?
System.out.println(seats[0][2]);
하지만 A5(있지 않음)에 접근하려면
오류가 뜬다.
// A5 에 접근하려면? 불가임
// System.out.println(seats[0][4]);
3차원 배열은 만들 수 없을까? 있긴 하다 알아만 둘 것
// 3차원 배열 만들기 (세로 x 가로 x 높이) 이런게 있다..만 알아둘 것
// String[][] marray = new String[][][];