여니의 취준 준비/코딩테스트 (Java)

[SWEA] 1961. 숫자 배열 회전 in Java

여니's 2022. 7. 11. 23:41

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pq-OKAVYDFAUq&categoryId=AV5Pq-OKAVYDFAUq&categoryType=CODE&problemTitle=1961&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


 

 

Rotate 함수를 선언해서

배열을 회전시키기!

 

직접 회전하기 전과 회전한 후의 인덱스 변화를

살펴보고 규칙을 찾아서 함수를 정의해주면 된다.

시계방향은 아래와 같다! 

 

자바 출력문은 아래 링크에 따로 정리해두었으니

참고하자!

https://eboong.tistory.com/555?category=1019810 

 

[Coding Test] 자바 문법, 속성 총 정리

기본적인 문장 단축키 1. public static void main(String[] args){} 자동 생성 psvm + enter > 단축키 2. System.out.println() 자동 생성 sout + enter 자바 입출력 (+ 클래스 이름은 Main) 1. 입력 총 3가지의..

eboong.tistory.com

import java.util.Scanner;

public class Solution {
    // 회전 함수
    public static int[][] Rotation(int[][] arr){
        int[][] result=new int[arr.length][arr.length];
        // 1 2 3    7 4 1
        // 4 5 6    8 5 2
        // 7 8 9    9 6 3
        // 0,0 -> 0,2
        // 1,0 -> 0,1
        // 2,0 -> 0,0
        for(int i=0; i<arr.length; i++){
            for(int j=0; j<arr.length; j++){
                result[i][j]=arr[arr.length-1-j][i];
            }
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T;
        T = sc.nextInt();

        for (int test_case = 1; test_case <= T; test_case++) {
            int N=sc.nextInt();
            int[][] array=new int[N][N];
            int answer=0;

            for(int i=0; i<N; i++){
                for(int j=0;j<N; j++){
                    array[i][j]=sc.nextInt();
                }
            }

            // 시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라.
            int[][] result_90=Rotation(array);
            int[][] result_180=Rotation(result_90);
            int[][] result_270=Rotation(result_180);

            System.out.printf("#%d\n",test_case);
            for(int i=0; i<N; i++){
                // 90도 회전
                for(int j=0; j<N; j++){
                    System.out.print(result_90[i][j]);
                }
                System.out.print(" ");
                // 180도 회전
                for(int j=0; j<N; j++){
                    System.out.print(result_180[i][j]);
                }
                System.out.print(" ");
                // 270도 회전
                for(int j=0; j<N; j++){
                    System.out.print(result_270[i][j]);
                }
                System.out.println();

            }
        }
    }
}