다음은 프로그래밍 퍼즐입니다.
예를 들어, 문자열 쌍과 해당 숫자의 목록이 주어지면 [[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]
다음과 같은 방식으로 문자열 만 갖는 다른 목록을 출력합니다.
문자열의 총 개수는 입력 데이터의 해당 수와 정확히 같아야합니다.
시퀀스에서 문자열을 인접하게 반복해서는 안되며 모든 문자열이 출력 목록에 나타납니다.
다음 문자열의 선택은 두 규칙을 어 기지 않는 한 무작위로 수행해야합니다. 각 솔루션은 0이 아닌 확률을 선택해야합니다.
조합이 불가능한 경우 출력은 단지이어야합니다
0
.
입력 목록은 임의의 순서 (정렬 또는 정렬되지 않음)로 제공 될 수 있으며, 목록의 문자열은 임의의 길이 일 수 있습니다.
위의 샘플 입력 1에 대한 샘플 출력
[A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G]
입력 샘플 2 :
[[A,6],[B,1],[C,1]]
두 번째 입력에 대한 출력 :
0
규칙에 따라 가능한 목록이 없기 때문입니다.
샘플 입력 3 :
[[AC,3],[BD,2]]
유효한 출력 : [AC,BD,AC,BD,AC]
유효하지 않은 출력 : [AC,BD,AC,AC,BD]
더 자세한 설명이 필요하면 언제든지 의견을 말해주십시오. 그에 따라 즉시 조치하겠습니다.
이것은 code-golf 이므로 각 언어마다 가장 짧은 코드가 바이트로 표시됩니다!