최대 1 분 소요

part45. 행렬 테두리 회전하기

js ver 1.0

function solution(rows, columns, queries) {
    const arr = Array.from({length: rows}, (_, i) =>
            Array.from({length: columns}, (_, j) => columns * i + j + 1)
    );

    const conversion = (query) => {
        const [x1, y1, x2, y2] = query.map(c => c - 1);
        const temp = arr[x1][y1];
        let min = temp;

        for (let i = x1; i < x2; i++) {
            arr[i][y1] = arr[i + 1][y1];
            min = Math.min(min, arr[i + 1][y1]);
        }

        for (let i = y1; i < y2; i++) {
            arr[x2][i] = arr[x2][i + 1];
            min = Math.min(min, arr[x2][i + 1]);
        }

        for (let i = x2; i > x1; i--) {
            arr[i][y2] = arr[i - 1][y2];
            min = Math.min(min, arr[i - 1][y2]);
        }

        for (let i = y2; i > y1; i--) {
            arr[x1][i] = arr[x1][i - 1];
            min = Math.min(min, arr[x1][i - 1]);
        }

        arr[x1][y1 + 1] = temp;

        return min;
    };

    return queries.map(query => conversion(query));
}

실행결과_js ver 1.0


업데이트: