SW Expert Academy
[SWEA] [JAVA] [Difficulty 2] [1961] 숫자 배열 회전
c0mmedes
2022. 11. 17. 16:48
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.util.*;
import java.io.*;
public class Solution {
// 90 돌리는 함수
static int[][] rotate90(int arr[][]) {
int len = arr.length;
int result[][] = new int[len][len];
for(int i=0; i<len; i++) {
for(int j=0; j<len; j++) {
result[i][j] = arr[len-1-j][i];
}
}
return result;
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int T= Integer.parseInt(br.readLine()); // 테스트케이스
for(int tc=1; tc<=T; tc++) {
int N = Integer.parseInt(br.readLine()); // N * N 행렬
int arr[][] = new int[N][N];
// 행렬 초기화
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine()," ");
for(int j=0; j<N; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
int arr90[][] = new int[N][N];
int arr180[][] = new int[N][N];
int arr270[][] = new int[N][N];
arr90 = rotate90(arr);
arr180 = rotate90(arr90);
arr270 = rotate90(arr180);
sb.append("#"+ tc + "\n");
for(int i=0; i<N; i++) {
// 90도 돌렸을 떄의 행렬
for(int j=0; j<N; j++) {
sb.append(arr90[i][j]);
}
sb.append(" ");
// 180도 돌렸을 떄의 행렬
for(int j=0; j<N; j++) {
sb.append(arr180[i][j]);
}
sb.append(" ");
// 270도 돌렸을 떄의 행렬
for(int j=0; j<N; j++) {
sb.append(arr270[i][j]);
}
sb.append('\n');
}
}
System.out.println(sb);
}
}