[JAVA 문제 풀이] 385. 행렬 테두리 회전하기

프로그래머스 (77485)
Stupefyee's avatar
Jul 18, 2025
[JAVA 문제 풀이] 385. 행렬 테두리 회전하기
notion image
notion image
 

내가 작성한 코드

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

stupefyee