안녕하세요, 코딩하는곰입니다! 오늘은 자바 프로그래밍에서 데이터를 행과 열로 구조화할 때 필수적으로 사용하는 2차원 배열에 대해 깊이 있게 알아보겠습니다. 특히 알고리즘 문제풀이나 데이터 처리에서 자주 활용되는 2차원 배열의 모든 것을 초보자도 이해하기 쉽게 설명드리겠습니다. 20년간의 자바 개발 경험을 바탕으로 실제 프로젝트에서 어떻게 활용하는지 함께 살펴볼게요!
2차원 배열은 행(row)과 열(column)로 구성된 데이터 구조로, 자바에서 테이블 형태의 데이터를 표현할 때 가장 많이 사용됩니다. 기본적인 선언 방식은 다음과 같습니다.
// 타입[][] 변수명 = new 타입[행크기][열크기];int[][] matrix = new int[3][4]; // 3행 4열 배열 생성
2차원 배열은 실제로 ‘배열의 배열’로 구현됩니다. 즉, 각 행이 다시 1차원 배열을 참조하는 구조입니다. 메모리 상에서는 다음과 같이 할당됩니다.
// 계단식 배열 생성 (Jagged Array)int[][] jaggedArray = new int[3][];jaggedArray[0] = new int[2]; // 첫 번째 행은 2개 열jaggedArray[1] = new int[3]; // 두 번째 행은 3개 열jaggedArray[2] = new int[4]; // 세 번째 행은 4개 열
초기화 방법에는 여러 가지가 있는데, 가장 일반적인 방법은 선언과 동시에 값을 할당하는 것입니다.
// 선언과 동시에 초기화int[][] scores = {{90, 85, 70},{80, 75, 65},{95, 90, 85}};
2차원 배열의 각 요소에 접근하기 위해서는 두 개의 인덱스([행][열])를 사용합니다. 인덱스는 0부터 시작하며, 배열의 길이를 넘어서는 인덱스로 접근하면 ArrayIndexOutOfBoundsException이 발생합니다. 기본적인 접근 방법 예제:
int[][] matrix = new int[3][3];matrix[0][0] = 1; // 첫 번째 행, 첫 번째 열에 값 할당int value = matrix[1][2]; // 두 번째 행, 세 번째 열 값 읽기
2차원 배열을 순회하는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 중첩 for문을 사용하는 것입니다.
// 기본적인 행 우선 순회for (int i = 0; i < matrix.length; i++) { // 행 순회for (int j = 0; j < matrix[i].length; j++) { // 열 순회System.out.print(matrix[i][j] + " ");}System.out.println();}
향상된 for문을 사용하면 더 간결하게 표현할 수 있습니다.
// 향상된 for문 사용for (int[] row : matrix) {for (int num : row) {System.out.print(num + " ");}System.out.println();}
웹디자인을 하다 보면 원하는 색상의 HEX 또는 RGB 값을 빠르게 확인해야 할 때가 있습니다. 이럴 땐 컬러피커 도구를 활용해보세요.
2차원 배열은 다양한 분야에서 활용됩니다. 게임 개발에서는 맵 데이터를 표현할 때, 데이터 분석에서는 표 형식의 데이터를 처리할 때, 알고리즘 문제에서는 그래프나 행렬 연산에 주로 사용됩니다. 예를 들어, 간단한 틱택토 게임 보드를 구현해보겠습니다.
char[][] ticTacToe = new char[3][3];// 보드 초기화for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {ticTacToe[i][j] = '-';}}// 플레이어 X가 (1,1)에 표시ticTacToe[1][1] = 'X';// 보드 출력for (char[] row : ticTacToe) {for (char cell : row) {System.out.print(cell + " ");}System.out.println();}
또 다른 예로 행렬 곱셈을 구현해보겠습니다.
int[][] matrixA = {{1, 2}, {3, 4}};int[][] matrixB = {{5, 6}, {7, 8}};int[][] result = new int[2][2];for (int i = 0; i < 2; i++) {for (int j = 0; j < 2; j++) {for (int k = 0; k < 2; k++) {result[i][j] += matrixA[i][k] * matrixB[k][j];}}}
제품 포장이나 명함에 삽입할 QR 코드를 만들고 싶다면, 로고 삽입과 색상 설정이 가능한 QR 코드 생성기를 활용해보세요.
오늘은 자바 2차원 배열에 대해 자세히 알아보았습니다. 2차원 배열은 데이터를 구조화하는 강력한 도구로, 알고리즘 문제풀이부터 실제 애플리케이션 개발까지 다양한 분야에서 활용됩니다. 처음에는 개념이 어려울 수 있지만, 직접 코드를 작성해보고 다양한 예제를 실습해보시면 금방 익숙해질 거예요. 궁금한 점이 있으면 댓글로 남겨주세요! 다음 시간에는 더 흥미로운 자바 주제로 찾아뵙겠습니다. 코딩하는곰이었습니다!
매일 두뇌 운동을 위한 스도쿠 게임이 필요하다면, 한국어 지원과 함께하는 스도쿠 저니를 다운로드하세요.
