꾸준하게 거북이처럼

2차원 배열 회전 알고리즘 - 파이썬 본문

Algorithm 문제 & 공부/알고있으면 좋은 팁

2차원 배열 회전 알고리즘 - 파이썬

somm12 2023. 1. 26. 13:20

알고 있으면 좋은 2차원 배열 회전 알고리즘엠 대해서 알아보려고 한다.

가끔 문제에서 90도로 회전한 2차원 배열이 필요할 때가 있다.

오른쪽으로 90도 회전하기

  Before After
1 (0, 0) (0, 2)
2 (0, 1) (1, 2)
3 (0, 2) (2, 2)

규칙을 보면

- 회전 전의 column 번호회전 후의 행 번호가 일치한다.
- 회전 후의 열은 n - 1 에서 회전 전의 행을 뺀 값과 같다.

코드

def rotate_90(m):
    N = len(m)
    res = [[0] * N for _ in range(N)]

    for r in range(N):
        for c in range(N):
            res[c][N-1-r] = m[r][c]
    return res

90도로 바꾸는 함수를 몇 번 반복하면 180, 270도 까지 회전시키는데 활용 할 수 있다.

 

참고

 

[Python] 2차원 배열 회전 알고리즘

2차원 배열 또는 행렬을 회전하는 알고리즘을 90도, 180도, 270도 단위로 작성해봅시다.

shoark7.github.io

 

Comments