PPCG 커뮤니티 덕분에 산타는 선물을 운송장으로 옮기기 위해 올바른 순서로 선물을 분류했습니다. 불행히도 교통 도크 표지판이 깨져서 모든 선물을 어디에 둘지 모릅니다! 선물은 모두 범위별로 분류되지 않고 그룹화되어있어 산타가 더 나은 아이디어라고 인정했습니다.
이제, 정렬 된 순서로 선물이 주어지면 현재가 올바른 순서로 될 수있는 모든 가능한 최소 범위 구성을 결정하십시오. 즉, Challenge # 5의 알고리즘에 따라 선물을 정렬하면 순서가 변경되지 않도록 최소 범위 구성을 모두 찾으십시오.
도전
최소 범위 구성은 범위가 가능한 한 작은 범위의 목록입니다. 즉, 범위가 특정 선물 서브 세트를 포함하도록 지정된 경우, 범위의 최소 및 최대는 서브 세트의 범위와 동일해야합니다. 다시 말해, 커버의 범위를 줄이면 더 이상 커버가되지 않습니다.
현재 크기에 적용 할 수있는 모든 최소 범위 구성을 찾는 것이 과제입니다. 예를 들어 보자.[3, 1, 2, 5, 4, 7, 6]
현재 전체 구성의 범위를 차지하는 사소한 경우가 있습니다. 이 경우 [[1, 7]]
해결책이 될 것입니다.
고유 한 요소가있는 예제의 경우 [[3], [1], [2], [5], [4], [7], [6]]
범위를 주문할 필요가 없으므로 또 다른 사소한 경우가 있습니다 .
이 예를 들어, 우리는 또한 볼 [[1, 3], [4, 7]]
과 [[1, 3], [4, 5], [6, 7]]
뿐만 아니라, 작동합니다 [[1, 3], [5], [4], [6, 7]]
및 [[1, 3], [4, 5], [7], [6]]
.
에 대한 최종 답변은 [3, 1, 2, 5, 4, 7, 6]
입니다 [[[3], [1], [2], [5], [4], [7], [6]], [[3], [1], [2], [5], [4], [6, 7]], [[3], [1], [2], [4, 5], [7], [6]], [[3], [1], [2], [4, 5], [6, 7]], [[3], [1], [2], [4, 7]], [[3], [1, 2], [5], [4], [7], [6]], [[3], [1, 2], [5], [4], [6, 7]], [[3], [1, 2], [4, 5], [7], [6]], [[3], [1, 2], [4, 5], [6, 7]], [[3], [1, 2], [4, 7]], [[1, 3], [5], [4], [7], [6]], [[1, 3], [5], [4], [6, 7]], [[1, 3], [4, 5], [7], [6]], [[1, 3], [4, 5], [6, 7]], [[1, 3], [4, 7]], [[1, 5], [7], [6]], [[1, 5], [6, 7]], [[1, 7]]]
.
포맷 사양
입력은 귀하의 언어가 지원하는 합리적인 숫자 범위 내에서 임의의 적절한 형식으로 양의 정수 목록으로 제공됩니다. 입력에 중복 요소가 포함될 수 있습니다. 출력은 합리적인 형식의 양의 정수로 구성된 3D 목록으로 제공되어야합니다.
(두 번째 계층 임)하여 출력의 각 영역은 하나 나타낼 수있다 [min, max]
, [num]
이는 하나의 값 범위, 또는 전체 범위 자체 있지만 출력 형식으로 일관되어야합니다. 약간 다른 합리적인 출력 형식을 사용하려면 지정하십시오.
중복 값은 출력에서 단일 범위로 포함되어야합니다. 즉, 출력에서 두 범위가 겹치지 않을 수 있습니다.
솔루션은 어떤 순서로든 범위를 반환 할 수 있으며 결정적 일 필요는 없습니다.
규칙
- 표준 허점 적용
- 이것은 코드 골프 바이트 단위의 최단 답변이 이깁니다.
- 응답이 없습니다
중복 요소가있는 목록의 테스트 사례 :
2 3 2 4 -> [[[2, 3], [4]], [[2, 4]]]
참조 구현
헤더는 링크입니다.
참고 : Advent Of Code 에서이 챌린지 시리즈에 대한 영감을 얻었습니다 . 이 사이트와 관련이 없습니다
여기서 첫 번째 도전 과제의 '링크 된'섹션을 보면 시리즈의 모든 도전 과제 목록을 볼 수 있습니다 .
행복한 골프!