본문 바로가기

JAVA/알고리즘 예제

[JAVA] 90도 회전 (Rotate)

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