정수 배열을 고려하십시오.
[1, 0, 9, 1, 3, 8]
이 목록을 연속 된 하위 목록으로 분할하는 방법에는 여러 가지가 있습니다. 다음은 세 가지입니다.
A: [[1, 0, 9], [1, 3, 8]]
B: [[1], [0, 9], [1, 3], [8]]
C: [[1, 0], [9, 1], [3, 8]]
하위 목록 중 일부를 다시 결합 하여 Y 에서 X 를 얻을 수 있으면 파티션 Y 와 다른 파티션 X의 구체화를 호출합니다 .
그래서 B
의 정제이다 A
: 우리가 다시 함께 처음 두와 마지막 두 하위 목록에 가입하는 경우, 우리는 얻을 A
. 그러나 C
인 하지 의 정제 A
: 우리는 분할해야 할 것 9
하고 1
복구하기 위해 A
그것에서. 또한 모든 파티션은 사소하게 개선됩니다.
우리는 어떤 시점에서도 하위 목록이나 요소를 재 배열 할 수 없습니다.
도전
두 개의 파티션 (정수 목록 목록)이 주어 X
지고 의 세분화 Y
여부를 결정하십시오 .Y
X
파티션은 0
~ 9
까지의 정수만 포함한다고 가정 할 수 있습니다 . 당신은 가정하지 않아야 X
하고 Y
(그렇지 않을 경우 그들은 또한 서로의 개선하지 않습니다) 동일한 목록의 파티션입니다. X
및 / 또는 Y
비어있을 수 있지만 빈 하위 목록을 포함하지 않습니다.
STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
편리한 문자열 또는 목록 형식으로 입력 할 수 있습니다. 요소는 한 자리 정수일 뿐이므로 하위 목록 내에서 구분 기호를 생략하도록 선택할 수 있지만 선행 0
s가 가능 해야 합니다. 당신은 걸릴하도록 선택할 수 있습니다 X
와 Y
반대 순서.
출력해야 truthy 경우 Y
의 정교화하고있다 X
및 falsy 그렇지.
코드는 합리적인 데스크톱 컴퓨터에서 1 초 안에 아래의 각 테스트 사례를 해결할 수 있어야합니다. (이것은 단순한 무차별 대입 솔루션을 피하기위한 위생 검사일뿐입니다.)
이것은 코드 골프이므로 가장 짧은 대답 (바이트)이 이깁니다.
테스트 사례
각 테스트 사례는로 작성됩니다 X Y
. 수평 공간을 절약하기 위해 GolfScript / CJam 스타일 배열 표기법을 사용하고 있습니다.
진실한 :
[] []
[[0]] [[0]]
[[1 0 9 1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9 1 3 8]] [[1 0 9 1 3] [8]]
[[1 0 9 1 3 8]] [[1] [0] [9] [1] [3] [8]]
[[1 0 9] [1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5] [1 4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
거짓 :
[[0]] []
[[0]] [[1]]
[[1 0 9]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9 1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9]]
[[1 0 9] [1 3 8]] [[1 0] [9]]
[[1 0 9] [1 3 8]] [[1 0] [9 1] [3 8]]
[[1] [0 9] [1 3] [8]] [[1 0 9] [1 3 8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5 1] [4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
리더 보드
다음은 일반 리더 보드와 언어 별 수상자 개요를 생성하는 스택 스 니펫입니다.
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.
# Language Name, N bytes
N
제출물의 크기는 어디에 있습니까 ? 점수를 높이면 헤드 라인을 쳐서 오래된 점수를 유지할 수 있습니다. 예를 들어 :
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script>site = 'meta.codegolf'; postID = 5314; isAnswer = true; QUESTION_ID = 51719</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
[[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]]
또는[["109" "138"] ["1" "09" "13" "8"]]
허용 입력 포맷 될?