Programming Practice/SWEA
[SWEA] 1961. 숫자 배열 회전 - D2 (Java)
Cage
2022. 7. 5. 20:32
문제
* 해당 문제의 모든 저작권은 SWEA 측에 있으며 본 블로그는 SWEA 약관을 위배하지 않음을 명시합니다.*
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pq-OKAVYDFAUq
풀이
반복문을 어느정도 이해하나 확인하는 문제인가보다
일부러 N*N을 따로 따로 출력하는 게 아니라 N*3 옆으로 늘어뜨려 출력시키게 한 걸 보아 시간 초과로 발목을 잡으려나 했는데 배열이 작아서 하드코딩으로 해도 시간초과 안나더라.
근데 그러면 코드가 너무 지저분해서 대충 줄였다
해당 문제는 O(n^2)로 풀긴했는데 더 줄일 수 있는지 생각해봐야지.
소스 코드
import java.util.Scanner;
public class Solution
{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
int answer = 0;
int[][] arr = new int[7][7];
int N = sc.nextInt();
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
arr[i][j] = sc.nextInt();
}
}
System.out.println("#" + test_case);
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
System.out.print(arr[N-j-1][i]);
}
System.out.print(" ");
for(int j = 0; j < N; j++) {
System.out.print(arr[N-i-1][N-j-1]);
}
System.out.print(" ");
for(int j = 0; j < N; j++) {
System.out.print(arr[j][N-i-1]);
}
System.out.println();
}
}
}
}