Notice
Recent Posts
Recent Comments
Link
꾸준하게 거북이처럼
2차원 배열 회전 알고리즘 - 파이썬 본문
알고 있으면 좋은 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
'Algorithm 문제 & 공부 > 알고있으면 좋은 팁' 카테고리의 다른 글
최대 공약수(GCD)와 최소 공배수(LCM) 관련 알고리즘 팁 (0) | 2023.03.13 |
---|---|
파이썬 list 시간 복잡도 정리 (0) | 2022.07.28 |
시간 복잡도 총정리(입력 수에 따른 시간 복잡도 정하기) (0) | 2022.07.28 |
Comments