이진 3D 배열이 주어지면 각 레이어에 대해 위의 레이어 열의 이진 인코딩으로 표시된 수만큼 각 열을 주기적으로 회전 한 다음 표시된대로 각 행을 왼쪽으로 주기적으로 회전 아래의 레이어의 행의 이진 인코딩
항상 3 개 이상의 레이어가 있습니다. 맨 위 레이어의 열과 맨 아래 레이어의 행은 회전하지 않아야합니다.
연습
작은 4 레이어, 2 열, 3 열 배열로 시작할 수 있습니다.
[[[1,0,1],
[1,0,0]],
[[1,0,1],
[0,1,1]],
[[0,1,1],
[1,1,1]],
[[1,1,0],
[1,1,1]]]
첫 번째 단계는 각 계층의 열과 행으로 이진으로 인코딩 된 숫자를 평가하는 것입니다.
3 0 2
5 [[[1,0,1],
4 [1,0,0]],
2 1 3
5 [[1,0,1],
3 [0,1,1]],
1 3 3
3 [[0,1,1],
7 [1,1,1]],
3 3 1
6 [[1,1,0],
7 [1,1,1]]]
첫 번째 레이어 [[1,0,1],[1,0,0]]
는 열이 회전하지 않지만 행은 각각 5 단계와 3 단계 씩 왼쪽으로 주기적으로 회전하므로 [[1,1,0],[1,0,0]]
.
두 번째 레이어 인 [[1,0,1],[0,1,1]]
에는 열이 각각 3, 0 및 2 단계 씩 [[0,0,1],[1,1,1]]
주기적으로 회전하여을 제공 한 다음 행이 눈에 띄는 변화없이 각각 왼쪽 및 3 단계 씩 왼쪽으로 순환됩니다. 2, 1 및 3 단계로 회전 한
세 번째 레이어 [[0,1,1],[1,1,1]]
는 동일하게 유지되며 왼쪽 및 6 단계에서 7 단계 회전해도 아무런 작업이 수행되지 않습니다.
마지막으로 [[1,1,0],[1,1,1]]
1, 3, 3 단계로 회전 한 네 번째 레이어 는입니다 [[1,1,1],[1,1,0]]
. 그러나 마지막 레이어이므로 행이 나중에 회전되지 않습니다.
모든 레이어를 다시 정리하면 바이너리 자체 회전 3D 배열이 제공됩니다.
[[[1,1,0],
[1,0,0]],
[[0,0,1],
[1,1,1]],
[[0,1,1],
[1,1,1]],
[[1,1,1],
[1,1,0]]]
사례 예 :
[[[1,0,1],[1,0,0]],[[1,0,1],[0,1,1]],[[0,1,1],[1,1,1]],[[1,1,0],[1,1,1]]]
준다
[[[1,1,0],[1,0,0]],[[0,0,1],[1,1,1]],[[0,1,1],[1,1,1]],[[1,1,1],[1,1,0]]]
[[[1]],[[1]],[[0]]]
준다
[[[1]],[[1]],[[0]]]
[[[1,0,1],[1,0,1],[1,0,1]],[[0,0,1],[0,0,1],[0,0,1]],[[1,0,0],[1,0,1],[0,0,1]]]
준다
[[[0,1,1],[0,1,1],[0,1,1]],[[0,1,0],[1,0,0],[0,1,0]],[[1,0,1],[1,0,1],[0,0,0]]]
None
이 회전 슬라이싱 동안 처리하기 때문에 나는 둘 다['0']
될 수 있다고 생각합니다[[]]
.