5*5배열을 90도 회전하는 로직
a 배열을 90도 회전하여 b배열에 넣고
다시 b배열을 90도 회전하여 a에 넣어서
180도 회전된 배열을 출력하기
실행 결과
package jungbo;
public class T26Rotate {
public static void main(String[] args) {
int a[][] = new int[5][5];
int b[][] = new int[5][5];
int row, col;
int i=1;
for(row=0;row<=4;row++){
for(col=0;col<=4;col++){
a[row][col]=i++;
}
}
for(row=0;row<=4;row++){
for(col=0;col<=4;col++){
System.out.printf("%3d", a[row][col]);
}
System.out.println();
}
//90도 회전
for(row=0;row<=4;row++){
for(col=0;col<=4;col++){
b[row][col]=a[col][4-row];
}
}
//90도 회전 출력
System.out.println();
for(row=0;row<=4;row++){
for(col=0;col<=4;col++){
System.out.printf("%3d", b[row][col]);
}
System.out.println();
}
//180도 회전
for(row=0;row<=4;row++){
for(col=0;col<=4;col++){
a[row][col]=b[col][4-row];
}
}
//180도 회전 출력
System.out.println();
for(row=0;row<=4;row++){
for(col=0;col<=4;col++){
System.out.printf("%3d", a[row][col]);
}
System.out.println();
}
}
}
왼쪽으로 90도 회전하면 위와 같은 규칙으로 좌표가 변한다.
a(row, col) = b(4-col, row)
더 생각해보기
오른쪽으로 돌려보기
'JAVA > 알고리즘 예제' 카테고리의 다른 글
[JAVA] 대각선 채우기(diagonal) (1) | 2016.09.05 |
---|---|
[JAVA] 합병(Merge) (1) | 2016.09.05 |
[JAVA] 이분 검색(Binary Search) (1) | 2016.09.02 |
[JAVA] 삽입 정렬(Insertion Sort) (1) | 2016.09.01 |
[JAVA] 순위(석차) 계산기 (1) | 2016.09.01 |