단순 구현 문제라고 생각하여 접근하였지만
다른 문제를 푸느라 시간이 부족하여 풀지 못했습니다.
저는 아래와 같은 과정으로 풀이했습니다.
class Solution {
public int[] solution(int rows, int columns, int[][] queries) {
int[] answer =new int[queries.length];
int index=1;
int[][] newMap = new int[rows][columns];
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
newMap[i][j]=index++;
}
}
for(int i=0;i<queries.length;i++){
int x1 = queries[i][0];
int y1 = queries[i][1];
int x2 = queries[i][2];
int y2 = queries[i][3];
int[][] deepMap = new int[rows][columns];
for(int j=0;j<rows;j++){
deepMap[j]=newMap[j].clone();
}
int min = Integer.MAX_VALUE;
//위쪽
for(int j=y1;j<=y2-1;j++) {
newMap[x1-1][j]=deepMap[x1-1][j-1];
if(min>newMap[x1-1][j]) min=newMap[x1-1][j];
}
// 오른쪽
for(int j=x1;j<=x2-1;j++){
newMap[j][y2-1]=deepMap[j-1][y2-1];
if(min>newMap[j][y2-1]) min=newMap[j][y2-1];
}
// 아래쪽
for(int j=y1-1;j<=y2-2;j++) {
newMap[x2-1][j]=deepMap[x2-1][j+1];
if(min>newMap[x2-1][j]) min=newMap[x2-1][j];
}
// 왼쪽
for(int j=x1-1;j<=x2-2;j++){
newMap[j][y1-1]=deepMap[j+1][y1-1];
if(min>newMap[j][y1-1]) min=newMap[j][y1-1];
}
answer[i] = min;
}
return answer;
}
}