From bcd1d71b7eeb583a560df63bc2917b6ab9e52d25 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Sun, 17 Aug 2025 23:55:45 +0900 Subject: [PATCH] =?UTF-8?q?[20250817]=20BOJ=20/=20G5=20/=20=EB=B0=B0?= =?UTF-8?q?=EC=97=B4=20=EB=8F=8C=EB=A6=AC=EA=B8=B01=20/=20=EC=9D=B4?= =?UTF-8?q?=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\353\217\214\353\246\254\352\270\260 1.md" | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 "LiiNi-coder/202508/17 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\260 1.md" diff --git "a/LiiNi-coder/202508/17 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\260 1.md" "b/LiiNi-coder/202508/17 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\260 1.md" new file mode 100644 index 00000000..25a75778 --- /dev/null +++ "b/LiiNi-coder/202508/17 BOJ \353\260\260\354\227\264 \353\217\214\353\246\254\352\270\260 1.md" @@ -0,0 +1,69 @@ +```java +import java.io.*; +import java.util.*; + +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()); + int R = Integer.parseInt(st.nextToken()); + + int[][] map = new int[N][M]; + for (int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < M; j++) { + map[i][j] = Integer.parseInt(st.nextToken()); + } + } + int layers = Math.min(N, M) / 2; + int[] dr = {0, 1, 0, -1}; + int[] dc = {1, 0, -1, 0}; + for (int layer = 0; layer < layers; layer++) { + List list = new ArrayList<>(); + int r = layer, c = layer; + //경계 길이 + int height = N - 2 * layer; + int width = M - 2 * layer; + + //한바퀴 돌기 + for (int d = 0; d < 4; d++) { + int len = (d % 2 == 0) ? width - 1 : height - 1; + for (int k = 0; k < len; k++) { + list.add(map[r][c]); + r += dr[d]; + c += dc[d]; + } + } + + //회전 + int size = list.size(); + int rotation = R % size; + + r = layer; + c = layer; + int index = 0; + for (int d = 0; d < 4; d++) { + int len = (d % 2 == 0) ? width - 1 : height - 1; + for (int k = 0; k < len; k++) { + map[r][c] = list.get((index + rotation) % size); + r += dr[d]; + c += dc[d]; + index++; + } + } + } + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < N; i++) { + for (int j = 0; j < M; j++) { + sb.append(map[i][j]).append(" "); + } + sb.append("\n"); + } + System.out.print(sb); + } +} +```