Open devLupin opened 1 year ago
(0, 0)
으로 현재 좌표를 옮겨준다.(0, 0)
기준으로 얼만큼 떨어졌는지 계산한다.void RotateRange(int sx, int sy, int sz) { // 시작점, 크기
for(int x = sx; x < sx + sz; x++) {
for(int y = sy; y < sy + sz; y++) {
int nx = y - sy;
int ny = sz - (x - sx) - 1;
next_board[nx + sx][ny + sy] = board[x][y];
}
}
}
// 시게방향으로 90도 회전, 오른쪽으로 90도 회전
public static int[][] rightRotate(int n, int[][] A) {
int[][] B = new int[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
B[i][j] = A[n-j-1][i];
}
}
return B;
}
// 반시계 방향으로 90도 회전, 270도, -90도, 왼쪽으로 90도
public static int[][] leftRotate(int n, int[][] A) {
int[][] B = new int[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
B[i][j] = A[j][n-i-1];
}
}
return B;
}
// 위, 아래로 뒤집기
public static int[][] reverseTopBottom(int n, int[][] A) {
int[][] B = new int[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
B[i][j] = A[n-i-1][j];
}
}
return B;
}
// 좌우로 뒤집기 회전
public static int[][] reverseLeftRight(int n, int[][] A) {
int[][] B = new int[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
B[i][j] = A[i][n-j-1];
}
}
return B;
}
r
,c
인 경우,