IT story/Algorism

배열8 90도 회전하기

jason719 2016. 9. 4. 17:54

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)



4행

 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)



5행

 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