Skip to content

Commit c674bbd

Browse files
authored
Merge pull request #878 from AlgorithmWithGod/LiiNi-coder
[20250912] BOJ / G5 / 배열 돌리기 2 / 이인희
2 parents 2b15845 + 483d7f5 commit c674bbd

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
```java
2+
import java.io.BufferedReader;
3+
import java.io.InputStreamReader;
4+
import java.io.IOException;
5+
import java.util.StringTokenizer;
6+
7+
public class Main {
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
int N = Integer.parseInt(st.nextToken());
12+
int M = Integer.parseInt(st.nextToken());
13+
long R = Long.parseLong(st.nextToken());
14+
int[][] arr = new int[N][M];
15+
for (int i = 0; i < N; i++) {
16+
st = new StringTokenizer(br.readLine());
17+
for (int j = 0; j < M; j++) {
18+
arr[i][j] = Integer.parseInt(st.nextToken());
19+
}
20+
}
21+
int layers = Math.min(N, M) / 2;
22+
for (int layer = 0; layer < layers; layer++) {
23+
int top = layer;
24+
int left = layer;
25+
int bottom = N - 1 - layer;
26+
int right = M - 1 - layer;
27+
28+
int byun = 2 * ((bottom - top) + (right - left));
29+
int RR = (int) (R % byun);
30+
for (int r = 0; r < RR; r++) {
31+
int temp = arr[top][left];
32+
for (int j = left; j < right; j++) {
33+
arr[top][j] = arr[top][j + 1];
34+
}
35+
for (int i = top; i < bottom; i++) {
36+
arr[i][right] = arr[i + 1][right];
37+
}
38+
for (int j = right; j > left; j--) {
39+
arr[bottom][j] = arr[bottom][j - 1];
40+
}
41+
for (int i = bottom; i > top; i--) {
42+
arr[i][left] = arr[i - 1][left];
43+
}
44+
45+
arr[top + 1][left] = temp;
46+
}
47+
}
48+
49+
50+
StringBuilder sb = new StringBuilder();
51+
for (int i = 0; i < N; i++) {
52+
for (int j = 0; j < M; j++) {
53+
sb.append(arr[i][j]);
54+
if (j < M - 1) sb.append(' ');
55+
}
56+
sb.append('\n');
57+
}
58+
System.out.print(sb.toString());
59+
}
60+
}
61+
62+
```

0 commit comments

Comments
 (0)