Skip to content

Commit

Permalink
BOJ: 16926 풀이
Browse files Browse the repository at this point in the history
Closed #159
  • Loading branch information
suhyunsim committed Aug 29, 2021
1 parent 0a1732a commit 3a747dc
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions src/main/java/com/poogle/BOJ/Q16926/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package main.java.com.poogle.BOJ.Q16926;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int r = sc.nextInt();
int[][] a = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = sc.nextInt();
}
}
ArrayList<ArrayList<Integer>> groups = new ArrayList<>();
int groupn = Math.min(n, m) / 2;
for (int k = 0; k < groupn; k++) {
ArrayList<Integer> group = new ArrayList<>();
for (int j = k; j < m - k; j++) {
group.add(a[k][j]);
}
for (int i = k + 1; i < n - k - 1; i++) {
group.add(a[i][m - k - 1]);
}
for (int j = m - k - 1; j > k; j--) {
group.add(a[n - k - 1][j]);
}
for (int i = n - k - 1; i > k; i--) {
group.add(a[i][k]);
}
groups.add(group);
}
for (int k = 0; k < groupn; k++) {
ArrayList<Integer> group = groups.get(k);
int len = group.size();
int index = r % len;
for (int j = k; j < m - k; j++, index = (index + 1) % len) {
a[k][j] = group.get(index);
}
for (int i = k + 1; i < n - k - 1; i++, index = (index + 1) % len) {
a[i][m - k - 1] = group.get(index);
}
for (int j = m - k - 1; j > k; j--, index = (index + 1) % len) {
a[n - k - 1][j] = group.get(index);
}
for (int i = n - k - 1; i > k; i--, index = (index + 1) % len) {
a[i][k] = group.get(index);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}

0 comments on commit 3a747dc

Please sign in to comment.