๋ฌธ์
์ฝ๋
#include <iostream>
#include <memory.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int T; cin>>T;
while(T--){
int n, d; cin>>n>>d;
int map[501][501] = {0, };
int temp[501][501];
for(int i=0; i<n; i++){
for(int k=0; k<n; k++){
cin>>map[i][k];
}
}
memcpy(temp, map, sizeof(temp));
if(d > 0){ // ์๊ณ๋ฐฉํฅ 45๋ ํ์
int cnt = d / 45;
while(cnt--){
for(int i=0; i<n; i++) temp[i][(n+1)/2 - 1] = map[i][i];
for(int i=0; i<n; i++) temp[i][i] = map[(n+1)/2 - 1][i];
for(int i=n-1; i>=0; i--) temp[(n+1)/2 - 1][n-1-i] = map[i][n-1-i];
for(int i=n-1; i>=0; i--) temp[i][n-1-i] = map[i][(n+1)/2 - 1];
memcpy(map, temp, sizeof(map));
}
}
else{ // ๋ฐ ์๊ณ๋ฐฉํฅ 45๋ ํ์
int cnt = abs(d) / 45;
while(cnt--){
for(int i=0; i<n; i++) temp[i][i] = map[i][(n+1)/2 - 1];
for(int i=0; i<n; i++) temp[(n+1)/2 - 1][i] = map[i][i];
for(int i=n-1; i>=0; i--) temp[i][n-1-i] = map[(n+1)/2 - 1][n-1-i];
for(int i=n-1; i>=0; i--) temp[i][(n+1)/2 - 1] = map[i][n-1-i];
memcpy(map, temp, sizeof(map));
}
}
for(int i=0; i<n; i++){
for(int k=0; k<n; k++){
cout<<temp[i][k] << ' ';
}
cout<<'\n';
}
}
}
ํ์ด
๋ฌธ์ ์์ ์๋์ ๊ฐ์ด ์ธ๋ฑ์ค ์์น๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ช ์ํด ์ฃผ์๊ธฐ ๋๋ฌธ์ ํฌ๊ฒ ์ด๋ ต์ง ์์์ต๋๋ค.
- X์ ์ฃผ ๋๊ฐ์ ์ ((1,1), (2,2), โฆ, (n, n)) ๊ฐ์ด๋ฐ ์ด ((n+1)/2 ๋ฒ์งธ ์ด)๋ก ์ฎ๊ธด๋ค.
- X์ ๊ฐ์ด๋ฐ ์ด์ X์ ๋ถ ๋๊ฐ์ ์ผ๋ก ((n, 1), (n-1, 2), โฆ, (1, n)) ์ฎ๊ธด๋ค.
- X์ ๋ถ ๋๊ฐ์ ์ X์ ๊ฐ์ด๋ฐ ํ ((n+1)/2๋ฒ์งธ ํ)์ผ๋ก ์ฎ๊ธด๋ค.
์๋ก์ด ์์ ๋ฐฐ์ด์ ์์ฑํ์ฌ, ๊ทธ ๋ฐฐ์ด์ ๋์
ํ๋ ๋ฐฉ์์ผ๋ก ๋ฃ์ด๊ฐ๋ฉด์ ๊ตฌํํ๋๋ฐ,
์ ๋ณด๋ฉด ์๊ณ ๋ฐฉํฅ์ผ ๋์ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ ๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ ์๋ก ๋ฐ๋์ธ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋๋ฌธ์ ์ด๋ ๋ฐฉํฅ์ด๋ ๋ ์ค ํ๋๋ง ์ ๋๋ก ๊ตฌํํด์ค๋ค๋ฉด ๋๋จธ์ง ํ์ชฝ์ ๊ทธ๋ฅ ์ธ๋ฑ์ค๋ง ์๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 21608๋ฒ - ์์ด ์ด๋ฑํ๊ต (0) | 2022.09.18 |
---|---|
[๋ฐฑ์ค,c++] 22856๋ฒ - ํธ๋ฆฌ ์ํ (0) | 2022.09.18 |
[๋ฐฑ์ค,c++] 16719๋ฒ - ZOAC (0) | 2022.09.16 |
[๋ฐฑ์ค,c++] 20436๋ฒ - ZOAC 3 (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 20164๋ฒ - ํ์ ํ๋ฆฌ ํธ์ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 20546๋ฒ - ๊ธฐ์ ์ ๋งค๋งค๋ฒ (0) | 2022.09.15 |
๋๊ธ