소개:
나는 트위스트 퍼즐을 수집합니다. 대부분의 뒤틀린 퍼즐은 중국 회사에서 생산하고 판매합니다. 대부분의 잘 알려진 회사는 퍼즐 디자이너의 허가를 얻어 디자인을 제작하고 시장에 출시 된 제품을 향해 협력합니다. 이 경우 퍼즐 디자이너는 물론 퍼즐 중 하나가 시장에 출시 된 것을 매우 기쁘게 생각합니다.
그러나 노크 오프 퍼즐을 만드는 중국 회사들도 있습니다. 이러한 넉 오프는 원래 제작자의 허가없이 사용 된 디자인이거나 기존 퍼즐의 품질이 훨씬 저렴한 저품질 사본입니다.
도전:
특정 순서 (왼쪽에서 오른쪽으로 † ) 로 '릴리스'된 숫자의 독창성을 결정합니다 .
정수 목록이 주어지면 독창성을 기준으로 그룹화하고 출력하십시오.
숫자의 독창성은 어떻게 결정됩니까?
- 숫자가 이전 숫자와 정확히 중복됩니까? 그룹 (최소 원본). 그룹 은 다른 모든 그룹 뒤에 있습니다.
- 숫자는 이전 번호의 중복이지만, 부정적인 대신 (즉, 원래의 수는 있었다 ,하지만 지금은 또는 그 반대)? 그룹 .
- 하나 이상의 이전 절대 숫자를 연결하여 숫자의 절대 값을 구성 할 수 있습니까? 그리고 앞서 언급 한 그룹 또는 아닙니까? 그룹 . 여기서 은 연결에 사용되는 고유 한 숫자의 양입니다 (및 ).
- 위의 그룹에 해당하는 숫자가 아니므로 지금까지 완전히 고유합니까? 그룹 (가장 원본)은 다른 모든 그룹보다 우선합니다.
이것은 매우 모호하게 들릴 수 있으므로 여기 단계별 예제가 있습니다 .
입력 목록 : [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44]
34첫 번째 숫자는 항상 원래이며 그룹 입니다. 지금까지 출력 :[[34]]9또한 독창적입니다.[[34,9]]4또한 독창적입니다.[[34,9,4]]-34이전 숫자의 음수입니다34이므로 그룹 .[[34,9,4],[-34]]19독창적입니다.[[34,9,4,19],[-34]]-199이전의 두 숫자에 의해 형성 될 수있다19및9이 그룹에, 그래서 :[[34,9,4,19],[-199],[-34]]34이전 숫자의 정확한 사본이므로 그룹 .[[34,9,4,19],[-199],[-34],[34]]-213독창적입니다.[[34,9,4,19,-213],[-199],[-34],[34]]94이전의 두 숫자에 의해 형성 될 수있다9및4이 그룹에 그래서, :[[34,9,4,19,-213],[-199,94],[-34],[34]]1934499네 이전 숫자에 의해 형성 될 수있다19,34,4, 두 번9,이 그룹의 그래서 :[[34,9,4,19,-213],[19499],[-199,94],[-34],[34]]213이전 숫자의 음수-213이므로 그룹 .[[34,9,4,19,-213],[1934499],[-199,94],[-34,213],[34]]3독창적입니다.[[34,9,4,19,-213,3],[1934499],[-199,94],[-34,213],[34]]21독창적입니다.[[34,9,4,19,-213,3,21],[1934499],[-199,94],[-34,213],[34]]-2134두 개의 이전 숫자213와4(또는 세 개의 이전 숫자21,3및4, 그러나 우리는 독창성을 결정하기 위해 항상 가장 적은 수의 연결 숫자를 사용합니다 )에 의해 형성 될 수 있으므로 그룹 .[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134],[-34,213],[34]]44449이전의 두 숫자가 네 번을 형성 할 수4및9이 그룹에 그래서, :[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[-34,213],[34]]44하나의 이전 숫자로 형성 될 수 있고4두 번 반복되므로 그룹 .[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[44],[-34,213],[34]]
따라서 입력의 [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44]경우 출력은 [[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[44],[-34,213],[34]]입니다.
도전 규칙 :
- I / O는 유연합니다. 정수 또는 문자열의 목록 / 배열 / 스트림으로 입력하고 STDIN을 통해 하나씩 입력 할 수 있습니다. 출력은 그룹으로 키, 중첩 된 목록을 예로 들어 맵으로,이 챌린지에서 테스트 케이스로 인쇄 할 수 있습니다. 줄 바꿈 등
- 입력 목록을 역순으로 가져올 수 있습니다 (아마도 스택 기반 언어에 유용 할 수 있음). † 이 경우 언급 된 왼쪽에서 오른쪽은 물론 오른쪽에서 왼쪽입니다.
- 당신이 정수의 예에서 볼 수 있듯이
-2134, 우리는 항상 그룹 몇이 가능한 다른 숫자의 연결 한 수 (형성213및4- 두 개의 숫자, 그리고하지 않음으로써21,3그리고4- 세 개의 숫자). - integer의 예제에서 볼 수 있듯이
1934499이전 숫자 (9이 경우)를 여러 번 사용할 수 있습니다 (44449네 개의4s 및9예제에서는 ). 그러나 그룹을 결정하기 위해 한 번만 계산됩니다. - 빈 그룹의 출력에 빈 내부 목록을 가질 수 없습니다. 따라서 빈 그룹이 X 및 X - 1 인 경우 테스트 사례
[1,58,85,-8,5,8585,5885,518]가[[1,58,85,8,5],[518],[5885],[8585],[],[]]대신 생성되지 않을 수 있으며 위의 예는[[34,9,4,19,-213,3,21],[1934499],[],[-199,94,-2134,44449],[44],[-34,213],[34]]는 빈 그룹이 인 경우 . - 그룹 순서는 엄격하지만 (키를 사용하여 그룹에서 차감 할 수 있으므로 맵을 사용하지 않는 한) 그룹 내 번호 순서는 임의 순서로 지정할 수 있습니다. 그래서
[34,9,4,19,-213,3,21]위 예에서 그룹 for 는[21,3,-213,19,4,9,34]또는 일 수도 있습니다[-213,4,34,19,9,21,3]. - 9 개 이상의 이전 숫자로 구성 할 수있는 숫자는 절대 없을 것입니다. 당신은 상관하지 않습니다 그래서 : 그룹 및 가능한 그룹의 가장 큰 금액을 12
- 정수는 최대 32 비트이므로 범위 내에 있다고 가정 할 수 있습니다
[−2147483648,2147483647].
일반 규칙:
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오. - 표준 규칙 은 기본 I / O 규칙으로 답변에 적용 되므로 STDIN / STDOUT, 적절한 매개 변수 및 반환 유형의 전체 프로그램과 함께 함수 / 방법을 사용할 수 있습니다. 당신의 전화.
- 기본 허점 은 금지되어 있습니다.
- 가능하면 코드 테스트 (예 : TIO ) 링크를 추가하십시오 .
- 또한 답변에 대한 설명을 추가하는 것이 좋습니다.
테스트 사례 :
Input: [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44]
Output: [[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[44],[-34,213],[34]]
Input: [17,21,3,-317,317,2,3,117,14,-4,-232,-43,317]
Output: [[17,21,3,2,117,14,-4],[-317,-232,-43],[317],[3,317]]
Input: [2,4,8,10,12,-12,-102,488,10824]
Output: [[2,4,8,10,12],[10824],[-102,488],[-12]]
Input: [0,100,-100,10000,-100,1001000]
Output: [[0,100],[10000,1001000],[-100],[-100]]
Input: [1,58,85,-8,5,8585,5885,518]
Output: [[1,58,85,-8,5],[518],[5885],[8585]]
Input: [4,-4,44,5,54]
Output: [[4,5],[54],[44],[-4]]
X + 1정확한 복사본을위한 특별 그룹이며,X등의 부정과 같은 단일 숫자의 사본로부터 형성 될 수있는 다른 번호에 대한 그룹인가?