C# - 2차원 배열 회전하기

2차원 배열을 회전하는 Method입니다.

원본 2차원 배열
012
345

 

우측으로 돌리면..
30
41
52

 

좌로 돌리면..
25
14
03

public static int[,] RotateRight(int[,] matrix)
{
    int lengthY = matrix.GetLength(0);
    int lengthX = matrix.GetLength(1);
    int[,] result = new int[lengthX, lengthY];
    for (int y = 0; y < lengthY; y++)
        for (int x = 0; x < lengthX; x++)
            result[x, y] = matrix[lengthY - 1 - y, x];
    return result;
}

public static int[,] RotateLeft(int[,] matrix)
{
    int lengthY = matrix.GetLength(0);
    int lengthX = matrix.GetLength(1);
    int[,] result = new int[lengthX, lengthY];
    for (int y = 0; y < lengthY; y++)
        for (int x = 0; x < lengthX; x++)
            result[x, y] = matrix[y, lengthX - 1 - x];
    return result;
}

 

댓글 남기기