고유 한 한 자리 양의 정수의 시작 순서와 트랙의 길이를 입력 출력으로 제공하거나 숫자의 종료 순서를 반환하는 프로그램 또는 함수를 작성해야합니다.
입력 [5,1,2,6,7] and 14
은 다음 레이스를 정의합니다.
--------------
76215 ->
--------------
인종의 규칙
- 트랙이 둘러싸고 숫자가 여러 번 랩될 수 있습니다.
- 단계 순서는 주기적이며 시작 위치를 기준으로합니다. 이 예에서
5 1 2 6 7 5 1 2 ...
. - 같은 위치에 여러 자리가있을 수 없습니다.
모든 숫자는
digit_value
단계 당 셀 속도를 갖습니다 . 한 자릿수 또는 연속적인 자릿수를 추월하려면 추가 단계가 필요합니다. 자릿수에 필요한 속도가 없으면 자릿수 (들)보다 먼저 정지합니다. 예 :[41 ] => [ 1 4 ] 4 overtakes 1 [2 1 ] => [ 21 ] 2 can only move 1 as it can't move 3 to overtake 1 [4 12 ] => [ 412 ] 4 can only move 1 as it can't move 5 to overtake 12 [ 3 ] => [ 3 ] 3 starting a new lap
모든 숫자는
digit_value
끝나기 전에 랩해야합니다. 트랙의 마지막 셀이 남아 있으면 랩이 완료됩니다. 완성 된 숫자가 트랙에서 제거됩니다.- 단계를 통해 숫자가 시작 위치에 여러 번 도달하여 여러 랩을 완료 할 수 있습니다.
입력
1..9
하나 이상의 요소와 하나의 양의 정수가 있고 목록의 길이보다 길고 트랙의 길이 가 다른 고유 한 한 자리 양의 정수 ( ) 목록.
산출
- 모호하지 않은 형식으로 완료된 순서의 자릿수 목록.
예
입력에 대한 시각적 단계별 예제 starting_order = [5,9,2] and length = 6
295 | Start position
29 5| digit 5 moves
2 9 5| digit 9 moves, finishing lap #1
29 5| digit 2 moves
529 | digit 5 moves, finishing lap #1
52 9| digit 9 moves, finishing lap #2
5 29| digit 2 moves
529| digit 5 moves
9 52 | digit 9 moves, finishing laps #3 and #4
29 5 | digit 2 moves, finishing lap #1
29 5| digit 5 moves
2 9 5| digit 9 moves, finishing lap #5
29 5| digit 2 moves
529 | digit 5 moves, finishing lap #2
52 9| digit 9 moves, finishing lap #6
5 29| digit 2 moves
529| digit 5 moves
9 52 | digit 9 moves, finishing laps #7 and #8
9 5 | digit 2 moves, finishing lap #2 --> remove 2 from the track
59 | digit 5 moves, finishing lap #3
5 | digit 9 moves, finishing lap #9 --> remove 9 from the track
5| digit 5 moves
5 | digit 5 moves, finishing lap #4
| digit 5 moves, finishing lap #5 --> remove 5 from the track
------
Finish order: 2 9 5
형식의 예 Input => Output
[3], 2 => [3]
[9, 5], 3 => [9, 5]
[5, 9, 2], 6 => [2, 9, 5]
[5, 9, 2], 10 => [5, 9, 2]
[5, 7, 8, 1, 2], 10 => [1, 5, 7, 8, 2]
[5, 1, 6, 8, 3, 2], 17 => [1, 6, 8, 2, 3, 5]
[1, 2, 3, 7, 8, 9], 15 => [1, 7, 8, 9, 2, 3]
[9, 8, 7, 3, 2, 1], 15 => [8, 7, 9, 1, 2, 3]
[1, 2, 3, 4, 5, 6, 7, 8, 9], 20 => [1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1], 20 => [8, 7, 5, 9, 6, 1, 2, 4, 3]
이것은 코드 골프이므로 가장 짧은 항목이 이깁니다.