배열회전하기

svv_vvs·2022년 9월 2일
0

배열 회전하기(90도,180도)

배열 회전하기 메모리 사용

import java.util.Arrays;

public class 배열회전하기{

    public static void rotate_180(int[][] arr)
    {
        int[][] tmp = new int[arr.length][arr.length];
        for(int r=0;r<arr.length;r++)
        {
            for(int c=0;c<arr[r].length;c++)
            {
                tmp[arr.length-1-r][arr[r].length-1-c]=arr[r][c];
            }
        }
        for(int r=0;r<arr.length;r++)
        {
            System.out.println(Arrays.toString(tmp[r]));
        }
    }
    public static void rotate_90(int[][] arr)
    {
        int[][] tmp=new int[arr.length][arr.length];
        for(int r=0;r<arr.length;r++)
        {
            for(int c=0;c<arr[r].length;c++)
            {
                //tmp[r][c]=arr[arr.length-1-c][r];2,0에서 0,0으로 보내야하니까..0,0에서 0,2로,,,
                tmp[c][arr.length-1-r]=arr[r][c];
            }
        }
        for(int r=0;r<arr.length;r++)
        {
            System.out.println(Arrays.toString(tmp[r]));
        }
    }
    public static void main(String[] args) {
        int[][] arr={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
        rotate_90(arr);
        //rotate_180(arr);
    }
}

배열 회전하기(메모리 사용X)

1) Transpose(전치) 후 Flip(반전) 이용

profile
안녕하세요. SW 개발자입니다.

0개의 댓글