일반적인 2차원 배열 패턴
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 8번째.
2D 배열을 다룰 때 특정 패턴이 자주 나타납니다. 이러한 패턴을 인식하면 문제를 더 효율적으로 해결할 수 있습니다. 다음은 몇 가지 일반적인 패턴입니다:
대각선 순회
행 인덱스가 열 인덱스와 같은 요소에 접근(matrix[i][i])하면 주 대각선을 얻을 수 있습니다. 부 대각선의 경우, 행과 열 인덱스의 합이 배열 크기에서 1을 뺀 값과 같습니다(matrix[i][size - 1 - i]).
예를 들어:
1 2 3
4 5 6
7 8 9주 대각선 (matrix[i][i])을 순회: 1, 5, 9
반대 대각선 (matrix[i][size - 1 - i])을 순회: 3, 5, 7
테두리 순회
경계 요소를 순회하기 위해, 한 인덱스를 상수(0 또는 size - 1)로 유지하면서 다른 인덱스를 반복합니다.
상단 테두리에 접근하려면, 행 인덱스를 0으로 고정하고 열을 반복합니다.
예를 들어:
1 2 3 4
5 6 7 8
9 10 11 12테두리 요소: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (6과 7 제외)
챌린지
쉬움printPatterns라는 이름의 메서드를 생성하세요. 이 메서드는 정수형의 정사각형 2D 배열(matrix)을 입력으로 받아 다음 패턴들을 출력합니다:
- 주 대각선: 행 인덱스가 열 인덱스와 같은 모든 요소를 출력하세요.
- 부 대각선: 행과 열 인덱스의 합이 행렬 크기에서 1을 뺀 값과 같은 모든 요소를 출력하세요.
- 테두리: 행렬의 상단, 하단, 좌측, 우측 테두리의 요소를 출력하세요.
출력은 다음과 같아야 합니다:
Main Diagonal: 1 6 11 16
Anti-Diagonal: 4 7 10 13
Top Border: 1 2 3 4
Bottom Border: 13 14 15 16
Left Border: 1 5 9 13
Right Border: 4 8 12 16치트 시트
일반적인 2D 배열 순회 패턴:
대각선 순회
주 대각선: matrix[i][i] (행 인덱스가 열 인덱스와 같음)
반대 대각선: matrix[i][size - 1 - i] (행과 열 인덱스의 합이 size - 1과 같음)
1 2 3
4 5 6
7 8 9주 대각선: 1, 5, 9
반대 대각선: 3, 5, 7
테두리 순회
한 인덱스를 상수(0 또는 size - 1)로 유지하면서 다른 하나를 반복:
- 상단 테두리: row = 0, 열 반복
- 하단 테두리: row = size - 1, 열 반복
- 좌측 테두리: column = 0, 행 반복
- 우측 테두리: column = size - 1, 행 반복
직접 해보기
// 클래스 내부에만 코드를 작성하세요. main()이나 클래스 외부에 코드를 작성하지 마세요.
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// 여기에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.