스키 틀즈 가방을 받았습니다. 모두 다른 맛을 가장 높이 평가하려면 맛 사이를 회전해야한다는 것을 모두 알고 있습니다.
기초:
- 한 번에 하나의 스키 틀 만 먹을 수 있습니다
- 스키 틀을 먹는 순서는 주기적 이어야 합니다.
- 각 기간에는 특정 풍미가 두 번 이상 포함될 수 없습니다.
- 가방에는 스키 틀이 너무 많습니다. 당신은 당신의 가방에 나타나는 것보다 특별한 풍미의 더 많은 것을 먹을 수 없습니다.
- 가능한 많은 스키 틀을 먹고 싶어합니다 (항상 가능한 것은 아님)
예 :
3 개의 빨간색, 2 개의 파란색 및 3 개의 녹색 가장자리 잘라내기로 시작한다고 가정 해 보겠습니다.
R B G R B G R G Invalid: The last R must be followed by a B, not a G
R B G R B G R Valid, but sub-optimal
R R R Valid, but sub-optimal
R G B R G B R G Valid and optimal
G R B G R B G R Also valid and optimal (there are multiple good solutions)
입출력
- 색상 수에 대해 비어 있지 않은 양의 정수 목록이 전달됩니다. 위의 예는
[3,2,3]입니다. - 유효하고 최적의 순서가 포함 된 목록을 반환해야합니다.
- 색상을 사용하는 대신 입력 목록의 색인을 사용합니다. (위의 마지막 출력 예는
[2,0,1,2,0,1,2,0])입니다. - 출력은 0 인덱스 또는 1 인덱스 일 수 있습니다. 내 예제는 0으로 색인됩니다
테스트 사례
1 0
4 0 0 0 0
4 1 0 0 0 0
3 1 0 1 0 or 0 0 0
5 2 2 0 1 2 0 1 2 0
2 3 5 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2
2 4 5 2 1 2 1 2 1 2 1 2
3 4 5 2 1 0 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2 0 1 2
1 1 1 1 1 6 5 0 1 2 3 4 5 (lots of other solutions)
1 1 1 1 1 8 5 5 5 5 5 5 5 5
2 4 6 8 3 2 1 3 2 1 3 2 1 3 2 1 3 2
이것은 코드 골프 이므로 원하는 언어로 솔루션을 최대한 짧게 만드십시오!