아이디어
우리는 전에 매트릭스 나선, 전체 회전, 심지어 대각선 회전 을 수행했지만 뱀 회전 은 찾을 수 없습니다 !
뱀 회전이란 무엇입니까?
행렬의 행이 앞뒤로 스 네이 핑하는 것을 상상해보십시오.
+--------------+
1 2 3 4 5|
+------------ |
|10 9 8 7 6|
| +-----------+
|11 12 13 14 15|
+------------ |
20 19 18 17 16|
+--------------+
이제이 아이템들을 2만큼 회전시키는 것을 상상해보십시오. 사람들이 줄을 서서 움직이는 것처럼 각 아이템이 전진하고 끝에있는 아이템이 쏟아져서 처음으로 돌아갑니다.
+--------------+
--> 19 20 1 2 3|
+------------ |
| 8 7 6 5 4|
| +-----------+
| 9 10 11 12 13|
+------------ |
<-- 18 17 16 15 14|
+--------------+
홀수 개의 행이 있으면 오른쪽에서 나가지 만 여전히 처음으로 줄 바꿈됩니다. 예를 들어 다음은 3 회전입니다.
+--------------+
1 2 3 4 5|
+------------ |
|10 9 8 7 6|
| +-----------+
|11 12 13 14 15
+--------------+
+--------------+
--> 13 14 15 1 2|
+------------ |
| 7 6 5 4 3|
| +-----------+
| 8 9 10 11 12 -->
+--------------+
음의 회전은 뒤로 이동합니다. -2 회전은 다음과 같습니다.
+--------------+
<-- 3 4 5 6 7|
+------------ |
|12 11 10 9 8|
| +-----------+
|13 14 15 1 2 <--
+--------------+
도전
함수 나 프로그램은 편리한 형식으로 2 개의 입력을받습니다 :
- 매트릭스
- 회전 위치 수를 나타내는 정수 (양수 또는 음수)입니다.
다음을 반환합니다 :
- 회전 된 행렬
노트:
- 코드 골프. 가장 적은 바이트가 이깁니다.
- 행렬은 정사각형 일 필요는 없지만 2 행 이상 2 열 이상을 포함합니다.
- 양의 정수는 1 행을 오른쪽으로 회전시킵니다.
- 음의 정수는 1 행을 왼쪽으로 회전시킵니다.
- 편리한 경우 양수 / 음수 회전의 의미를 반대로 바꿀 수 있습니다.
- 회전 수는 항목 수보다 클 수 있습니다. 이 경우 랩핑됩니다. 즉, 수 모듈로의 수와 항목 수에 해당합니다.
- 행렬에는 정수만 포함되지만 반복을 포함하여 모든 정수가 포함될 수 있습니다.
테스트 사례
체재:
- 매트릭스
- 회전 수
- 기대 값
4 5
6 7
1
6 4
7 5
2 3 4 5
6 7 8 9
10 11 12 13
-3
5 9 8 7
12 11 10 6
13 2 3 4
8 8 7 7
5 5 6 6
10
5 5 8 8
6 6 7 7