프로그래머스
[프로그래머스] 행렬 테두리 회전하기 (javascript)
해랑쓰
2021. 4. 30. 17:01
728x90
반응형
function solution(rows, columns, queries) {
var answer = [];
const map=Array(rows).fill(0).map((_,i)=>Array(columns).fill(0).map((_,j)=>i*columns+j+1));
for(let i=0;i<queries.length;i++){
const[y,x,yy,xx]=queries[i];
rotate(y-1,x-1,yy-1,xx-1,map,answer);
}
return answer;
}
function rotate(y,x,yy,xx,map,answer){
let cur=map[y][x];
let next;
let minimum=cur;
for(let j=x+1;j<=xx;j++){
next=map[y][j];
map[y][j]=cur;
cur=next;
if(minimum>cur)minimum=cur;
}
for(let i=y+1;i<=yy;i++){
next=map[i][xx];
map[i][xx]=cur;
cur=next;
if(minimum>cur)minimum=cur;
}
for(let j=xx-1;j>=x;j--){
next=map[yy][j];
map[yy][j]=cur;
cur=next;
if(minimum>cur)minimum=cur;
}
for(let i=yy-1;i>=y;i--){
next=map[i][x];
map[i][x]=cur;
cur=next;
if(minimum>cur)minimum=cur;
}
// console.log(map)
answer.push(minimum);
}
728x90
반응형