https://school.programmers.co.kr/learn/courses/30/lessons/77485?language=java
나의풀이
class Solution {
public int[] solution(int rows, int columns, int[][] queries) {
int[] answer = new int[queries.length];
int[][] map = new int[rows][columns];
int num=1;
for(int i=0; i< rows ;i++){
for(int j=0; j<columns; j++){
map[i][j]=num++;
}
}
int idx=0;
for(int[] q: queries){
int a=q[0]-1;
int b=q[1]-1;
int c=q[2]-1;
int d=q[3]-1;
int firstNum = map[a][d];//백업
int mNum=firstNum;
//오른쪽으로(상단)
for(int i=d-1; i>=b; i--){
mNum=Math.min(mNum, map[a][i]);
map[a][i+1]=map[a][i];
}
//위로(좌측)
for(int i=a+1; i<=c;i++){
mNum=Math.min(mNum, map[i][b]);
map[i-1][b]=map[i][b];
}
//왼쪽으로(하단)
for(int i=b+1; i<=d;i++){
mNum=Math.min(mNum, map[c][i]);
map[c][i-1]=map[c][i];
}
//아래로(우측)
for(int i=c-1; i>=a;i--){
mNum=Math.min(mNum, map[i][d]);
map[i+1][d]=map[i][d];
}
map[a+1][d]=firstNum;
answer[idx]=mNum;
idx++;
}
return answer;
}
}
'코테풀이' 카테고리의 다른 글
[프로그래머스] 숫자 카드 나누기 java 풀이(LEVEL2) (0) | 2023.06.25 |
---|---|
[프로그래머스] 디펜스 게임 java 풀이(LEVEL2) (0) | 2023.06.15 |
[프로그래머스] 시소 짝꿍 java 풀이(LEVEL2) (0) | 2023.06.14 |
[프로그래머스] [1차] 뉴스 클러스터링 java 풀이( LEVEL2 ) (0) | 2023.06.07 |
[프로그래머스] [1차]캐시 java 풀이( LEVEL2 ) (0) | 2023.06.06 |