안녕하세요, 작가 J입니다. 이번에는 2차원 배열을 왼쪽으로 90도 회전하여 출력하는 프로그램을 작성해 보겠습니다. 이 예제는 2차원 배열을 다루는 방법과 배열의 회전을 이해하는 데 도움이 됩니다.
[Java Festival 23] 2차원 배열 왼쪽으로 90도 회전하기
아래와 같은 2차원 배열을 왼쪽으로 90도 회전하여 출력하시오.
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
코드 풀이
코드 풀이 1: 직접 회전하여 저장하는 방식
package Ex;
public class Ex23 {
public static void main(String[] args) {
int[][] array = new int[5][5];
int num = 1;
// 2차원 배열 초기화
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = num++;
}
}
// 배열을 왼쪽으로 90도 회전하여 새로운 배열에 저장
int[][] rotatedArray = new int[5][5];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
rotatedArray[array.length - j - 1][i] = array[i][j];
}
}
// 회전된 배열 출력
for (int i = 0; i < rotatedArray.length; i++) {
for (int j = 0; j < rotatedArray[i].length; j++) {
System.out.print(rotatedArray[i][j] + "\t");
}
System.out.println();
}
}
}
1. 2차원 배열 초기화
- int[][] array = new int[5][5];: 5x5 크기의 2차원 배열을 선언합니다.
- for (int i = 0; i < array.length; i++) { ... }: 배열을 순회하며 1부터 25까지의 숫자를 저장합니다.
2. 배열을 왼쪽으로 90도 회전하여 새로운 배열에 저장
- int[][] rotatedArray = new int[5][5];: 회전된 배열을 저장할 새로운 5x5 배열을 선언합니다.
- for (int i = 0; i < array.length; i++) { ... }: 배열을 순회하며 원래 배열의 값을 회전된 배열의 적절한 위치에 저장합니다.
- rotatedArray[array.length - j - 1][i] = array[i][j];: 원래 배열의 값을 회전된 배열의 적절한 위치에 저장합니다.
3. 회전된 배열 출력
- for (int i = 0; i < rotatedArray.length; i++) { ... }: 회전된 배열을 순회하며 값을 출력합니다.
코드 풀이 2: 원본 배열을 직접 회전하여 저장하는 방식
package Ex;
public class Ex23Alternative {
public static void main(String[] args) {
int[][] array = new int[5][5];
int num = 1;
// 2차원 배열 초기화
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = num++;
}
}
// 배열을 왼쪽으로 90도 회전하여 출력
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[j][array.length - 1 - i] + "\t");
}
System.out.println();
}
}
}
1. 배열을 왼쪽으로 90도 회전하여 출력
- for (int i = 0; i < array.length; i++) { ... }: 배열을 순회하며 원래 배열의 값을 회전하여 출력합니다.
- System.out.print(array[j][array.length - 1 - i] + "\t");: 원래 배열의 값을 회전된 위치에 맞게 출력합니다.
- System.out.println();: 줄바꿈을 실행합니다.
마무리
이번 예제에서는 2차원 배열을 왼쪽으로 90도 회전하여 출력하는 두 가지 방법을 다뤄보았습니다. 첫 번째 방법은 원본 배열을 회전된 배열로 변환하는 방법이며, 두 번째 방법은 원본 배열을 직접 회전하여 출력하는 방법입니다. 두 가지 방법 모두 이해하시는데 도움이 되길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 25. 숫자에 사용되는 대시('-')의 개수 계산하기 (0) | 2024.07.05 |
---|---|
[Java Festival] 24. N개의 숫자 중 X보다 작은 수만 출력하기 (0) | 2024.07.04 |
[Java Festival] Bonus05. 정수 오름차순 정렬하기 (0) | 2024.07.04 |
[Java Festival] 22. 계단식 별 출력하기 (0) | 2024.07.04 |
[Java Festival] 21. 두 숫자 사이의 최소 거리를 찾기 (0) | 2024.07.04 |