diff --git "a/LiiNi-coder/202509/12 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\2602.md" "b/LiiNi-coder/202509/12 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\2602.md" new file mode 100644 index 00000000..21bcdb8a --- /dev/null +++ "b/LiiNi-coder/202509/12 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\2602.md" @@ -0,0 +1,62 @@ +```java +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; +import java.util.StringTokenizer; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int N = Integer.parseInt(st.nextToken()); + int M = Integer.parseInt(st.nextToken()); + long R = Long.parseLong(st.nextToken()); + int[][] arr = new int[N][M]; + for (int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < M; j++) { + arr[i][j] = Integer.parseInt(st.nextToken()); + } + } + int layers = Math.min(N, M) / 2; + for (int layer = 0; layer < layers; layer++) { + int top = layer; + int left = layer; + int bottom = N - 1 - layer; + int right = M - 1 - layer; + + int byun = 2 * ((bottom - top) + (right - left)); + int RR = (int) (R % byun); + for (int r = 0; r < RR; r++) { + int temp = arr[top][left]; + for (int j = left; j < right; j++) { + arr[top][j] = arr[top][j + 1]; + } + for (int i = top; i < bottom; i++) { + arr[i][right] = arr[i + 1][right]; + } + for (int j = right; j > left; j--) { + arr[bottom][j] = arr[bottom][j - 1]; + } + for (int i = bottom; i > top; i--) { + arr[i][left] = arr[i - 1][left]; + } + + arr[top + 1][left] = temp; + } + } + + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < N; i++) { + for (int j = 0; j < M; j++) { + sb.append(arr[i][j]); + if (j < M - 1) sb.append(' '); + } + sb.append('\n'); + } + System.out.print(sb.toString()); + } +} + +```