C언어/문제풀다 하나씩

배열 회전시키기

mcdn 2020. 5. 22. 11:26
반응형
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int arr[10][10];
int n, spinn;
int result[10][10];
void spin(int nline) {
	for (int i = 0;i < nline;i++) {
		for (int j = 0; j < nline;j++) {
			result[j][nline - 1 - i] = arr[i][j];
		}
	}
	for (int i = 0; i < nline;i++) {
		for (int j = 0; j < nline; j++) {
			arr[i][j] = result[i][j];
		}
	}
}

int main() {
	cin >> n >> spinn;
	for (int i = 0; i < n;i++) {
		for (int j = 0; j < n;j++) {
			cin >> arr[i][j];
		}
	}
	for (int i = 0; i < spinn;i++) {
		spin(n);
	}
	for (int i = 0;i < n;i++) {
		for (int j = 0; j < n;j++) {
			cout << result[i][j]<<" ";
		}cout << endl;
	}
	return 0;
}

result를 하나더 만들어야 하긴하지만

여러번 회전 시킬때 어떻게 처리할지는 애매하다.

 

 

https://milvus.tistory.com/63

 

[C언어] 배열 회전시키기

(본 카테고리의 내용은 영진닷컴 기본서 시리즈 '이기적 2011 정보처리기사 실기' 알고리즘 편을 기본으로 하고 있습니다.) <문제> 배열 A(5,5)를 시계 방향으로 90도 회전시켜 B(5,5)를 생성하는 알고

milvus.tistory.com

참고해서 만들긴 함

결국 이 부분이 중요 !!!!!!

5칸짜리 배열이라면

result[j][4-i] = A[i][j];

 

 

 

 

반응형