inblog logo
|
stupefyee
    알고리즘문제풀기

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

    프로그래머스 (77485)
    Stupefyee's avatar
    Stupefyee
    Jul 18, 2025
    [JAVA 문제 풀이] 385. 행렬 테두리 회전하기
    Contents
    내가 작성한 코드다른 사람의 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/77485
    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
    Contents
    내가 작성한 코드다른 사람의 코드

    stupefyee

    RSS·Powered by Inblog