반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1961번 숫자 배열 회전 자바(Java)
1) 난이도 : D2
2) 문제번호 : 1961번
3) 문제 출처
2. 문제
N x N 행렬이 주어질 때,
시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라.
3. 제약사항
- N은 3 이상 7 이하이다.
4. 입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 N이 주어지고,
다음 N 줄에는 N x N 행렬이 주어진다.
5. 출력
출력의 첫 줄은 '#t'로 시작하고,
다음 N줄에 걸쳐서 90도, 180도, 270도 회전한 모양을 출력한다.
입력과는 달리 출력에서는 회전한 모양 사이에만 공백이 존재함에 유의하라.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
6. 풀이
- 첫 번째 테스트 케이스에서 90도로 돌리고 맨 위를 처음에 넣고 그다음 중간, 그 다음 아래로 나타내진다.
- 그래서, 90도, 180도, 270도 별로 구해서 출력을 하면 된다.
7. 소스 코드
import java.util.*;
public class Solution {
//회전
public static int[][] Rotation(int[][] arr) {
int[][] result = new int[arr.length][arr.length];
//회전
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr.length;j++) {
result[i][j] = arr[arr.length-j-1][i];
}
}
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();//테스트케이스 개수 입력
for(int tc=1;tc<=T;tc++) {
int N = sc.nextInt(); // 행렬 크기
int[][] arr = new int[N][N]; //행렬 정의
//배열 입력
for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
arr[i][j] = sc.nextInt();
}
}
//회전 배열 저장
int[][] result_90 = Rotation(arr);
int[][] result_180 = Rotation(result_90);
int[][] result_270 = Rotation(result_180);
System.out.printf("#%d\n",tc);
for(int i=0;i<N;i++) {
for(int j=0;j<N; j++) {
System.out.print(result_90[i][j]);
}
System.out.print(" ");
for(int j=0;j<N; j++) {
System.out.print(result_180[i][j]);
}
System.out.print(" ");
for(int j=0;j<N; j++) {
System.out.print(result_270[i][j]);
}
System.out.println();
}
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 1970번 쉬운 거스름돈 자바(Java) (0) | 2021.02.11 |
---|---|
[SW expert Academy] SWEA 1926번 간단한 369게임 자바(Java) (2) | 2021.02.11 |
[SW expert Academy] SWEA 2005번 파스칼의 삼각형 자바(Java) (0) | 2021.02.10 |
[SW expert Academy] SWEA 1247번 최적 경로 자바(Java) (0) | 2021.02.10 |
[SW expert Academy] SWEA 1976번 시각 덧셈 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1966번 숫자를 정렬하자 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1940번 가랏! RC카! 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 9229번 한빈이와 Spot Mart 자바(Java) (0) | 2021.02.09 |
최근댓글