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


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

원본 2차원 배열
0 1 2
3 4 5

우측으로 돌리면..
3 0
4 1
5 2

좌로 돌리면..
2 5
1 4
0 3

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;
}

광고

댓글 남기기