외우면 구현 빠른 알고리즘
시계 방향 회전 (90도 회전)
// origin[ROW][COL]
// rotated[COL][ROW]
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
rotated[j][ROW-1-i] = origin[i][j];
}
}
반시계 방향 회전 (270도 회전)
// origin[ROW][COL]
// rotated[COL][ROW]
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
rotated[COL-1-j][i] = origin[i][j];
}
}
or 시계방향 * 3회
180도 회전
// origin[ROW][COL]
// rotated[COL][ROW]
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
rotated[COL-1-i][ROW-1-j] = origin[i][j];
}
}
or 시계방향 * 2회
전치행렬
// origin[ROW][COL]
// rotated[COL][ROW]
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
rotated[j][i] = origin[i][j];
}
}
+ 달팽이 알고리즘
2023.03.22 - [Develop/Algorithm] - [C++] 달팽이 알고리즘
[C++] 달팽이 알고리즘
정방향 행렬에서 시계 방향으로 탐색 시 N, N-1, N-1, N-2, N-2, ... , 2, 2, 1,1 순서로 값이 채워지는 규칙이 있다. 이 규칙을 이용하면 코드 축약에 도움을 준다. sign 을 사용하는 것은 x가 증가하는 쪽으
oozoowos.tistory.com
'컴퓨터공학 > 알고리즘 ˙ 자료구조' 카테고리의 다른 글
[알고리즘] 배낭 알고리즘 (fractional 배낭, 0-1 배낭) (0) | 2023.04.29 |
---|---|
[자료구조] AVL 트리, Red-Black 트리 (0) | 2023.04.28 |
[알고리즘] 퀵 정렬과 병합 정렬 (0) | 2023.04.26 |
[자료구조] B-tree와 B+tree (0) | 2023.04.24 |
[C++] 달팽이 알고리즘 (0) | 2023.03.22 |