이 간단한 도전에서는 L
음수가 아닌 정수와 b
0보다 길지만 길이가 아닌 빈 의 입력 배열이 제공 L
됩니다. 코드는 M
길이가 b
배열을 비닝 한 새 배열을 반환해야합니다 L
. 이것은 예제와 함께 가장 쉽게 설명됩니다.
L = [1,0,5,1]
를 b = 2
반환합니다 M = [1,6]
.
L = [0,3,7,2,5,1]
를 b = 3
반환합니다 M = [3,9,6]
.
지금까지는 간단합니다. 그러나이 질문에서 b
반드시 나눌 필요는 없습니다 len(L)
. 이 경우 마지막 빈에는 숫자를 더 적게 만들 수 있습니다.
마지막 빈을 제외한 각 빈은 같은 수의 숫자를 가져야합니다. 마지막 빈에는 다른 빈보다 더 이상 숫자가 없어야합니다. 마지막 빈에는 다른 규칙에 따라 가능한 한 많은 수의 숫자가 있어야합니다.
L = [0,3,7,2,5,1]
를 b = 4
반환합니다 M = [3,9,6,0]
. M = [10,8,0,0]
제 빈이 빈들로 기여 번호 이름 참조하지 않는 허용 출력되지 1
하고 2
.
L = [0,3,7,2,5]
를 b = 2
반환합니다 M = [10,7]
. M = [3, 14]
마지막 빈에는 3
기여하는 요소가 있지만 첫 번째 빈 에만 있는 요소 이므로 허용되는 출력 이 아닙니다 2
.
L = [1,1,1,1,1,1,1]
를 b = 3
반환합니다 M = [3,3,1]
.
마지막으로 코드는 선형 시간으로 실행해야합니다.
원하는 언어 나 라이브러리를 사용할 수 있으며 입력이 편리한 방식으로 제공된다고 가정 할 수 있습니다.
해결할 수없는 입력이 있음이 밝혀졌습니다. 예를 들어 [1,1,1,1,1]
및 b=4
. 코드는 해당 입력에 대해 원하는 것을 출력 할 수 있습니다.
your code must run in linear time
-자연스럽게 이상한 것을 따르지 않는 알고리즘을 발견 할 것입니다