코딩 테스트 구현문제를 풀다보면 배열을 회전해야하는 문제들이 나온다.
배열을 회전 하는 것 은 여러가지 방법들이 있지만 외울때 정사각형, 직사각형 회전까지 되는 코드를 외워보자.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class test2 {
public static int[][] rotate(int[][] Matrix){
int n = Matrix.length;
int m = Matrix[0].length;
int[][] newMatrix = new int[m][n];
for(int i = 0 ; i < m ; i++) {
for(int j = 0 ; j < n ; j++) {
newMatrix[i][j] = Matrix[n - 1 - j][i];
}
}
return newMatrix;
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int[][] Matrix = new int[n][m];
for(int i = 0 ; i < n ; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0 ; j < m ; j++) {
Matrix[i][j] = Integer.parseInt(st.nextToken());
}
}
int[][] newMatrix = rotate(Matrix);
for(int i = 0 ; i < newMatrix.length; i++) {
for(int j = 0 ; j < newMatrix[0].length; j++ ) {
System.out.print(newMatrix[i][j]+" ");
}
System.out.println();
}
}
}
정사각형 회전문제가 많이 나오지만 직사각형회전 문제가 나올수도 있기 때문이다.

위 사진과 같이 직사각형도 회전되는 것을 볼수있다.
배열회전을 활용한 문제로는 2020 KAKAO BLIND RECRUITMENT 에서 나왔던 자물쇠 열쇠 문제가있다.
링크를 참고하여 문제에대해서 확인해보자 !