Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 코딩테스트
- 스택
- 자료구조
- 백준알고리즘
- 그리디
- BFS
- DP
- 코테
- 백준
- 코딩테스트실력진단
- JS
- 완전탐색
- react
- DFS
- socket.io
- react-query
- 재귀
- CSS
- 문자열
- 블챌
- DFS기초
- Express
- 스택자료구조
- DFS활용
- 그리디알고리즘
- 구현
- 파이썬
- 코드트리
- django
Archives
- Today
- Total
꾸준하게 거북이처럼
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