Giới thiệu:
Sau khi tôi đăng hai thử thách liên quan đến cầu vồng: Codegolf Rainbow: Fun with Integer-Arrays 1 và Codegolf Rainbow: Draw in Black-and-White 2 , nhận xét sau đây được đưa ra bởi @ChrisM trong ASCII ( Vẽ bằng màu đen và trắng ) thách thức :
Có thể bạn biết điều này và theo thiết kế (tôi biết rằng cầu vồng không phải là hình thoi hoặc ascii, và vị trí của các đơn hàng cao hơn trở nên phức tạp hơn), nhưng không phải màu sắc bị đảo ngược trong cầu vồng thứ 2?
Và anh ấy thực sự đúng. Khi bạn nhìn thấy cầu vồng đôi, cái thứ hai thực sự là sự phản chiếu của cái thứ nhất, vì vậy màu sắc bị đảo ngược. Với ba cầu vồng, đó là cầu vồng đôi thực sự, với cầu vồng thứ ba là hình ảnh phản chiếu của một trong hai cầu vồng kia. Và với bốn, có hai cầu vồng và hai hình ảnh phản chiếu của chúng.
Vì vậy, hãy thực hiện một thách thức liên quan thứ ba bằng cách sử dụng thực tế đó.
Thử thách:
Đầu vào: Một số nguyên dương n
là >=2
và một danh sách các số nguyên có kích thước >= n+1
.
Đầu ra: Danh sách tương tự được sắp xếp như sau:
- Đầu tiên, phân chia danh sách đầu vào trong danh sách phụ có kích thước
n
(trong đó danh sách phụ có thể có bất kỳ kích thước nào trong phạm vi[1,n]
). - Sau đó, chúng tôi thực hiện các thao tác sau dựa trên số lượng danh sách phụ
m
:- Sắp xếp
m - m//2
số lượng danh sách phụ đầu tiên từ thấp nhất đến cao nhất (trong đó//
phân chia số nguyên). (Tức là có 6 danh sách phụ, ba danh sách đầu tiên sẽ được sắp xếp từ thấp nhất đến cao nhất; với 5 danh sách phụ, ba danh sách phụ sẽ được sắp xếp từ thấp nhất đến cao nhất.) - Sắp xếp
m//2
số lượng danh sách phụ cuối cùng từ cao nhất đến thấp nhất (trong đó//
phân chia số nguyên). (Tức là có 6 danh sách phụ, ba danh sách cuối cùng sẽ được sắp xếp từ cao nhất đến thấp nhất; với 5 danh sách phụ, hai danh sách phụ sẽ được sắp xếp từ cao nhất đến thấp nhất.)
- Sắp xếp
- Hợp nhất tất cả các danh sách phụ lại với nhau để tạo thành một danh sách một lần nữa
Ví dụ:
Đầu vào: n=7
và [3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10]
Bước 1: [[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]]
Bước 2: [[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]]
Bước 3 / Đầu ra:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5]
Đầu vào: n=4
và [7,4,-8,9,3,19,0,-23,-13,13]
Bước 1: [[7,4,-8,9],[3,19,0,-23],[-13,13]]
Bước 2: [[-8,4,7,9],[-23,0,3,19],[13,-13]]
Bước 3 / Đầu ra:[-8,4,7,9,-23,0,3,19,13,-13]
Quy tắc thử thách:
- Đầu vào số nguyên
n
được đảm bảo lớn hơn 1. - Kích thước của danh sách số nguyên được đảm bảo lớn hơn
n
. - Danh sách phụ theo dõi có thể nhỏ hơn
n
(như có thể thấy trong các ví dụ và trường hợp thử nghiệm). - Định dạng I / O là linh hoạt trong bất kỳ định dạng hợp lý. Có thể là danh sách / mảng số nguyên hoặc số thập phân, chuỗi phân cách bằng dấu phẩy / dấu cách / dòng mới, luồng số nguyên, v.v. (Đầu ra có thể không phải là danh sách 2D của danh sách như bước 2. Bước 3 để đưa nó trở lại vào một danh sách là cần thiết cho thử thách này.)
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.
Các trường hợp thử nghiệm:
Inputs: n=7 and [3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10]
Output: [-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5]
Inputs: n=4 and [7,4,-8,9,3,19,0,-23,-13,13]
Output: [-8,4,7,9,-23,0,3,19,13,-13]
Inputs: n=2 and [7,-3,1]
Output: [-3,7,1]
Inputs: n=3 and [1,6,99,4,2]
Output: [1,6,99,4,2]
Inputs: n=2 and [5,2,9,3,-5,-5,11,-5,4,12,9,-2,0,4,1,10,11]
Output: [2,5,3,9,-5,-5,-5,11,4,12,9,-2,4,0,10,1,11]
Inputs: n=3 and [5,2,9,3,-5,-5,11,-5,4,12,9,-2,0,4,1,10,11]
Output: [2,5,9,-5,-5,3,-5,4,11,12,9,-2,4,1,0,11,10]