

내가 작성한 코드
class Solution {
public int[] solution(int rows, int columns, int[][] queries) {
int[] answer = new int[queries.length];
int[][] arr = new int[rows][columns]; // 회전 시킬 배열
int num = 1;
// 회전 시킬 배열 초기화
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
arr[i][j] = num++;
}
}
for (int i = 0; i < queries.length; i++) {
int[] query = queries[i];
// 범위가 될 좌표 찾기
int x1 = query[0] - 1;
int y1 = query[1] - 1;
int x2 = query[2] - 1;
int y2 = query[3] - 1;
int temp = arr[x1][y1];
int min = temp;
// 하 >> 상
for (int j = x1; j < x2; j++) {
arr[j][y1] = arr[j + 1][y1];
min = Math.min(min, arr[j][y1]);
}
// 오 >> 왼
for (int j = y1; j < y2; j++) {
arr[x2][j] = arr[x2][j + 1];
min = Math.min(min, arr[x2][j]);
}
// 하 >> 상
for (int j = x2; j > x1; j--) {
arr[j][y2] = arr[j - 1][y2];
min = Math.min(min, arr[j][y2]);
}
// 왼 >> 오
for (int j = y2; j > y1; j--) {
arr[x1][j] = arr[x1][j - 1];
min = Math.min(min, arr[x1][j]);
}
arr[x1][y1 + 1] = temp; // 중복된 값 바꾸기
answer[i] = min;
}
return answer;
}
}
다른 사람의 코드
Share article