Recent Posts
Notice
No Rules Rules
배열 돌리기 1 (feat. 백준, 16926번) 본문
728x90
반응형
배열 돌리기 1
https://www.acmicpc.net/problem/16926
// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <math.h>
using namespace std;
int N, M, R, A[301][301], tmp[301][301];
void rotate(){
for(register int r = 0, i, j, x1, y1, x2, y2, ix; r < R; ++r){
for(i = 0; i < min(N, M) / 2; ++i){
x1 = i, y1 = i, x2 = N - 1 - i, y2 = M - 1 - i;
//좌
for(ix = y2 - 1; ix >= y1; --ix)
tmp[x1][ix] = A[x1][ix + 1];
//하
for(ix = x1 + 1; ix <= x2; ++ix)
tmp[ix][y1] = A[ix - 1][y1];
//우
for(ix = y1 + 1; ix <= y2; ++ix)
tmp[x2][ix] = A[x2][ix - 1];
//상
for(ix = x2 - 1; ix >= x1; --ix)
tmp[ix][y2] = A[ix + 1][y2];
}
for(i = 0; i < N; ++i)
for(j = 0; j < M; ++j)
A[i][j] = tmp[i][j];
}
}
int main(){
ios::sync_with_stdio(false), cin.tie(NULL);
cin >> N >> M >> R;
for(register int n = 0, m; n < N; ++n)
for(m = 0; m < M; ++m)
cin >> A[n][m];
rotate();
for(register int i = 0, j; i < N; ++i){
for(j = 0; j < M; ++j)
cout << A[i][j] << " ";
cout << "\n";
}
return 0;
}
// *&)*@*
반응형
구현 유형의 문제라 시간은 오래 걸리지만 하나하나 뜯어서 생각해보면 구현 자체는 쉬운 문제입니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
그래서 대회 이름 뭐로 하죠 (feat. 백준, 27466번) (0) | 2023.02.16 |
---|---|
배열 돌리기 3 (feat. 백준, 16935번) (0) | 2023.02.16 |
소수가 아닌 수 (feat. 백준, 27465번) (0) | 2023.02.14 |
N과 M (8) (feat. 백준, 15657번) (0) | 2023.02.14 |
팩토리얼 2 (feat. 백준, 27433번) (0) | 2023.02.10 |
Comments