아직은 정체성이 없는 블로그

[SWEA][D2][c++] 1961. 숫자 배열 회전 본문

알고리즘 역량테스트 문제/SWEA

[SWEA][D2][c++] 1961. 숫자 배열 회전

coooding 2020. 7. 4. 12:23

문제

1961. 숫자 배열 회전

 

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pq-OKAVYDFAUq

 

SW Expert Academy

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

swexpertacademy.com

 

풀이 과정

90, 180, 270도를 돌린 배열을 각각 저장하여 출력하는 방법이 있습니다.

하지만 3개의 배열을 테스트케이스마다 새로 만들고 값을 넣어야 한다는게 불편하다고 생각하였습니다.

그래서 배열의 인덱스만을 가지고 회전한 배열을 출력하였습니다.

 

코드

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
	int test_case;
	int T;
	scanf("%d",&T);
	int map[7][7];
	for(test_case = 1; test_case <= T; ++test_case)
	{
        int n;
        scanf("%d",&n);
        
        //입력
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                scanf("%d",&map[i][j]);
            }
        }

        printf("#%d\n",test_case);

        for(int i=0; i<n; i++){
            //90
            for(int j = 0; j < n; j++)
                printf("%d",map[n-j-1][i]);
            printf(" ");

            //180
            for(int j = 0; j < n; j++)
                printf("%d",map[n-i-1][n-j-1]);
            printf(" ");

            //270
            for(int j = 0; j < n; j++)
                printf("%d",map[j][n-1-i]);	
            printf("\n");
        }

    }
    return 0;
}
Comments