가변 길이 배열 및 표 서식
가변 길이 2차원 배열을 처리하고 열별 너비를 사용해 정렬된 표를 출력합니다. 예제에서는 Scanner 없이 샘플 행렬을 만듭니다.
가변 길이 배열 및 표 서식은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 6개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 6개의 강의가 포함되어 있습니다.
톱니형 배열 개념
톱니형 2차원 배열: 각 행의 길이가 다를 수 있습니다. 행을 개별적으로 처리하고 공통 열 개수를 가정하지 마세요.
톱니형 배열 생성
길이가 서로 다른 행을 할당하여 톱니형 배열을 생성합니다. 메시지에서는 이유를 설명합니다. 각 행에 필요한 만큼의 열만 있으면 됩니다.
public class Main {
public static void main(String[] args) {
// Create a jagged array with 3 rows of varying lengths
int[][] m = new int[3][];
// Row 0 has 2 columns
m[0] = new int[]{1, 2};
// Row 1 has 3 columns
m[1] = new int[]{3, 4, 5};
// Row 2 has 1 column
m[2] = new int[]{6};
// Print the jagged array
System.out.println("Jagged array contents:");
for (int r = 0; r < m.length; r++) {
for (int c = 0; c < m[r].length; c++) {
System.out.print(m[r][c] + " ");
}
System.out.println(); // new line after each row
}
}
}
안전한 순회
각 행에 m[r].length를 사용하여 안전하게 순회합니다. 안쪽 반복문의 길이는 행마다 다를 수 있습니다.
public class Main {
public static void main(String[] args) {
// Example jagged array
int[][] m = {
{1, 2},
{3, 4, 5},
{6}
};
// Safe nested loops for a jagged matrix
for (int r = 0; r < m.length; r = r + 1) {
// Always use the actual length of the current row
for (int c = 0; c < m[r].length; c = c + 1) {
int value = m[r][c]; // process the value
System.out.print(value + " ");
}
System.out.println(); // new line after each row
}
}
}
열 너비
열을 정렬하여 출력하려면 모든 행을 검사하여 존재하는 각 열의 너비를 계산합니다.
// Determine the maximum number of columns among all rows
int maxCols = 0;
for (int r = 0; r < m.length; r = r + 1) {
if (m[r].length > maxCols) maxCols = m[r].length;
}
// For each column, store the maximum string length of values in that column
int[] w = new int[maxCols];
for (int r = 0; r < m.length; r = r + 1) {
for (int c = 0; c < m[r].length; c = c + 1) {
int len = Integer.toString(m[r][c]).length();
if (len > w[c]) w[c] = len;
}
}정렬하여 출력
각 값의 왼쪽에 공백을 추가하여 열 너비에 맞춘 다음, 행을 하나의 문자열로 출력합니다.
// Print each row with left-padded columns
for (int r = 0; r < m.length; r = r + 1) {
String line = "";
for (int c = 0; c < m[r].length; c = c + 1) {
String s = Integer.toString(m[r][c]);
while (s.length() < w[c]) s = " " + s; // left pad with spaces
line = line + s + (c + 1 < m[r].length ? " " : "");
}
System.out.println(line);
}입력 없는 예시
실행해 보세요: 이 예시에서는 코드로 톱니형 행렬을 만들고, 열 너비를 계산하고, 정렬된 표를 출력합니다. 입력은 필요하지 않습니다.
public class Main {
// Compute per-column widths for a jagged matrix
static int[] colWidths(int[][] m) {
int maxCols = 0;
for (int r = 0; r < m.length; r = r + 1) {
if (m[r].length > maxCols) maxCols = m[r].length;
}
int[] w = new int[maxCols];
for (int r = 0; r < m.length; r = r + 1) {
for (int c = 0; c < m[r].length; c = c + 1) {
int len = Integer.toString(m[r][c]).length();
if (len > w[c]) w[c] = len;
}
}
// Ensure at least width 1 for each column
for (int c = 0; c < w.length; c = c + 1) {
if (w[c] < 1) w[c] = 1;
}
return w;
}
// Print the matrix with aligned columns
static void printTable(int[][] m) {
int[] w = colWidths(m);
for (int r = 0; r < m.length; r = r + 1) {
String line = "";
for (int c = 0; c < m[r].length; c = c + 1) {
String s = Integer.toString(m[r][c]);
while (s.length() < w[c]) s = " " + s;
line = line + s + (c + 1 < m[r].length ? " " : "");
}
System.out.println(line);
}
}
public static void main(String[] args) {
// Sample jagged matrix (no Scanner; values are hard-coded)
int[][] m = {
{1, 23, 456},
{7, 8},
{90, 12, 3, 4}
};
System.out.println("Aligned table:");
printTable(m);
}
}
톱니형 배열 순회 확인
확인해 보세요: 톱니형 행렬의 모든 요소를 안전하게 순회하는 중첩 반복문은 무엇입니까?
복습 및 다음 단계
복습: 톱니형 배열을 생성하고, 행별 길이를 사용하여 안전하게 순회하고, 열 너비를 계산하고, Scanner 없이 정렬된 표를 출력했습니다.
다음: 행 및 열의 최댓값과 행렬의 전치를 살펴봅니다.
자주 묻는 질문
“가변 길이 배열 및 표 서식” 강의는 무료인가요?
네 — “가변 길이 배열 및 표 서식” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 6개의 강의가 포함되어 있습니다.
“가변 길이 배열 및 표 서식”에서 뭘 배우나요?
가변 길이 2차원 배열을 처리하고 열별 너비를 사용해 정렬된 표를 출력합니다. 예제에서는 Scanner 없이 샘플 행렬을 만듭니다. 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Java Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 6개 중 2번째 강의입니다.
“가변 길이 배열 및 표 서식” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 2차원 배열 기초 및 중첩 순회
- 가변 길이 배열 및 표 서식
- 행·열 최댓값, 전치 및 서식
- 2차원 미니 프로젝트: 성적표
- 도우미 클래스 기반 2차원 유틸리티(리팩터링)
- 2차원 데이터 정제 및 검증