내 작은 아이는 다음과 같은 장난감을 가지고 있습니다.
이 완구는 10 개의 쌓을 수있는 작은 양동이로 구성되어 있으며, 1 (가장 작은 것)에서 10 (가장 큰 것)까지 숫자가 될 것입니다. 때때로 그는 작은 더미를 만들고 장난감은 다음과 같이 끝납니다.
우리는 다음과 같이 더미를 개략적으로 나타낼 수 있습니다.
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
또는 다른 방법으로 넣으십시오.
[[4,5],[9,10],[1,2,3],[6,7,8]]
이 버킷 파일 세트는 더 큰 버킷의 더미 안에 작은 버킷 더미를 연속적으로 배치하여 원본 세트 (첫 번째 이미지)를 재구성하기 위해 쉽게 다시 쌓을 수 있습니다.
1 1 6
2 2 7
1 6 3 6 3 8
4 9 2 7 4 9 7 4 9
5 10 3 8 5 10 8 5 10
---------- > [Pile 3 to 1] > ---------- > [Pile 4 to 2] > ---------- > [Pile 1 to 2] > Done!
1 2 3 4 1 2 3 4 1 2 3 4
그럼에도 불구하고 때때로 내 아이는 탑을 짓거나 양동이를 버리고 더미가 일치하지 않고 더미 하나를 다른 더미 안에 놓아서 원래 세트를 다시 만들 수없는 경우가 있습니다. 이것의 예 :
[[1,3,2],[4]] (the kid tried to build a tower by placing a bigger bucket
over a smaller one, we would need to reorder the buckets
first)
[[1,3,4],[2]] (the kid left aside an unordered bucket, we would need to remove
bucket #1 from pile #1 before restacking)
[[1,2,3],[5]] (the kid lost a bucket, we need to find it first)
도전
버킷 파일 세트를 나타내는 정수 목록이 제공된 경우 목록이 쉽게 다시 쌓을 수있는 파일 세트를 나타내면 참 값을 반환하거나 다른 경우에는 거짓입니다.
- 각 스택의 버킷을 위에서 아래로 나타내는 정수 목록이 입력됩니다.
- 비어있는 시작 파일이 없습니다 (
[[1,2,3],[],[4,5]]
입력으로 얻지 못할 것입니다 ). - 버킷의 총 수는 적절한 정수 범위 내에있을 수 있습니다.
- 내 아이는 버킷 세트가 하나뿐이므로 중복 요소가 없습니다.
- 진실 또는 거짓에 대해 일관된 (일관된) 값을 선택할 수 있습니다.
- 버킷은 # 1에서 #N까지 레이블이 지정되며
N
정수 목록에서 가장 큰 정수입니다. 내 아이는 여전히 제로의 개념을 모른다. - 버킷 더미를 나타내는 한 적절한 형식으로 입력을받을 수 있습니다. 입력을받는 방식을 변경하는 경우 답변에 지정하십시오.
- 이것은 code-golf 이므로 각 언어마다 가장 짧은 프로그램 / 기능이 이길 수 있습니다!
예
Input: [[4,5],[9,10],[1,2,3],[6,7,8]]
Output: Truthy
Input: [[6,7,8,9,10],[1],[2],[3,4,5],[11,12,13]]
Output: Truthy
Input: [[2,3,4],[1],[5,6,7]]
Output: Truthy
Input: [[1,2],[5,6],[7,8,9]]
Output: Falsey (buckets #3 and #4 are missing)
Input: [[2,3,4],[5,6,7]]
Output: Falsey (bucket #1 is missing)
Input: [[1,3,4],[5,7],[2,6]]
Output: Falsey (non-restackable piles)
Input: [[1,4,3],[2],[5,6]]
Output: Falsey (one of the piles is a tower)