2016. 09. 04. Sun. 정보처리산업기사 실기 알고리즘
배열8 90도 회전하기
1. 기본 5행 5열 arrayA를 만든다.
2. 아래와 같이 arrayA와 arrayB의 규칙을 찾는다.
그리고 arrayB(col, 6-row) = arrayA(row, col); << 대입한다.
1행
arrayA(row, col) |
arrayB(col, 6-row) |
( 1, 1) |
( 1, 5) |
( 1, 2) |
( 2, 5) |
( 1, 3) |
( 3, 5) |
( 1, 4) |
( 4, 5) |
( 1, 5) |
( 5, 5) |
2행
arrayA(row, col) | arrayB(col, 6-row) |
( 2, 1) | ( 1, 4) |
( 2, 2) | ( 2, 4) |
( 2, 3) | ( 3, 4) |
( 2, 4) | ( 4, 4) |
( 2, 5) | ( 5, 4) |
3행
arrayA(row, col) | arrayB(col, 6-row) |
( 3, 1) | ( 1, 3) |
( 3, 2) | ( 2, 3) |
( 3, 3) | ( 3, 3) |
( 3, 4) | ( 4, 3) |
( 3, 5) | ( 5, 3) |
arrayA(row, col) | arrayB(col, 6-row) |
( 4, 1) | ( 1, 4) |
( 4 2) | ( 2, 4) |
( 4, 3) | ( 3, 4) |
( 4, 4) | ( 4, 4) |
( 4, 5) | ( 5, 4) |
arrayA(row, col) | arrayB(col, 6-row) |
( 5, 1) | ( 1, 1) |
( 5, 2) | ( 2, 1) |
( 5, 3) | ( 3, 1) |
( 5, 4) | ( 4, 1) |
( 5, 5) | ( 5, 1) |
package example;
class Example{
int n = 5;
int row,col;
public void ninetyRotation(){
int arrayA[][] = new int[n][n];
int arrayB[][] = new int[n][n];
int num = 1;
System.out.println("\n배열8 90도 회전하기");
for(int row=0; row<n; row++){
for(int col=0; col<n; col++){
arrayA[row][col]=num++;
}
}
System.out.println("arrayA");
for(int row=0; row<n; row++){
for(int col=0; col<n; col++){
System.out.printf("%3d",arrayA[row][col]);
}
System.out.println();
}
for(int row=0; row<n; row++){
for(int col=0; col<n; col++){
arrayB[col][n-1-row]=arrayA[row][col];
}
}
System.out.println("arrayB");
for(int row=0; row<n; row++){
for(int col=0; col<n; col++){
System.out.printf("%3d",arrayB[row][col]);
}
System.out.println();
}
}//ninetyRotation
}//class
public class Algorism {
public static void main(String[] args) {
Example e = new Example();
e.ninetyRotation();
}//main
}//class
'IT story > Algorism' 카테고리의 다른 글
배열10 대각선으로 채우기 (0) | 2016.09.04 |
---|---|
배열9 달팽이 만들기 (0) | 2016.09.04 |
배열7 이등변 삼각형 만들기 (0) | 2016.09.04 |
배열6 오른쪽에 빈 삼각형 만들기 (0) | 2016.09.04 |
배열5 모래시계 채우기 (0) | 2016.09.04 |