728x90
반응형
https://www.acmicpc.net/problem/16926
16926번: 배열 돌리기 1
크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5]
www.acmicpc.net
#include <iostream>
#include <algorithm>
using namespace std;
int n, m, r;
int arr[301][301];
void rotate(){
int t = min(n, m) / 2;
for(int i = 1; i <= t; i++){
int tmp = arr[i][i];
for(int j = i + 1; j <= m - i + 1; j++)
arr[i][j - 1] = arr[i][j];
for(int j = i + 1; j <= n - i + 1; j++)
arr[j - 1][m - i + 1] = arr[j][m - i + 1];
for(int j = m - i + 1; j >= i + 1; j--)
arr[n - i + 1][j] = arr[n - i + 1][j - 1];
for(int j = n - i + 1; j >= i + 2; j--)
arr[j][i] = arr[j - 1][i];
arr[i + 1][i] = tmp;
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m >> r;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
cin >> arr[i][j];
}
}
for(int i = 0; i < r; i++)
rotate();
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
cout << arr[i][j] << " ";
}
cout << '\n';
}
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 2665번 미로 만들기 (C++) (0) | 2022.08.15 |
---|---|
[BOJ] 16927번 배열 돌리기 2 (C++) (0) | 2022.08.12 |
[BOJ] 7569번 토마토 (C++) (0) | 2022.08.11 |
[BOJ] 1374번 강의실 (C++) (0) | 2022.08.09 |
[BOJ] 15681번 트리와 쿼리 (C++) (0) | 2022.08.07 |