บทนำ:
หลังจากที่ฉันโพสต์ความท้าทายที่เกี่ยวข้องกับรุ้งสองประการ: Codegolf Rainbow: สนุกกับ Integer-Arrays 1และCodegolf Rainbow: วาดในสีดำและสีขาว 2ความคิดเห็นต่อไปนี้สร้างโดย@ChrisMใน ASCII ( วาดใน Black-and-White ) ความท้าทาย :
บางทีคุณอาจรู้เรื่องนี้และมันก็เป็นไปตามการออกแบบ (ฉันรู้ว่ารุ้งกินน้ำไม่ใช่รูปสี่เหลี่ยมขนมเปียกปูนหรือ ascii เช่นกันและตำแหน่งที่สูงขึ้นของคำสั่งซื้อก็มีความซับซ้อนมากขึ้น) แต่สีในรุ้งที่ 2 ไม่ใช่หรือ
และเขาก็พูดถูก เมื่อคุณเห็นรุ้งสองครั้งอันที่สองนั้นจริง ๆ เป็นภาพสะท้อนของแรกดังนั้นสีจะกลับ ด้วยรุ้งสามอันมันเป็นรุ้งคู่ที่แท้จริงโดยอันที่สามเป็นภาพสะท้อนของอีกอันหนึ่ง และด้วยสี่มีรุ้งสองตัวและสองเงาสะท้อนของมัน
ดังนั้นขอความท้าทายที่สามโดยใช้ข้อเท็จจริงนั้น
ท้าทาย:
อินพุต: จำนวนเต็มบวกn
ซึ่งก็คือ>=2
และรายการขนาด>= n+1
เต็ม
ผลลัพธ์: รายการเดียวกันได้รับคำสั่งดังนี้:
- ก่อนแยกรายการอินพุตในรายการย่อยของขนาด
n
(โดยที่รายการย่อยต่อท้ายอาจมีขนาดใดก็ได้ในช่วง[1,n]
) - จากนั้นเราจะทำสิ่งต่อไปนี้ตามจำนวนรายการย่อย
m
:- เรียงลำดับ
m - m//2
จำนวนย่อยแรกของรายการจากต่ำสุดไปสูงสุด (โดยที่//
หารด้วยจำนวนเต็ม) (เช่นที่มี 6 รายการย่อยสามรายการแรกจะถูกจัดเรียงจากต่ำสุดไปสูงสุดด้วย 5 รายการย่อยรายการกำปั้นสามรายการจะเรียงลำดับจากต่ำสุดไปสูงสุด) - เรียงลำดับ
m//2
จำนวนย่อยสุดท้ายของรายการจากสูงสุดไปต่ำสุด (โดยที่//
หารด้วยจำนวนเต็ม) (เช่นที่มี 6 รายการย่อยสามรายการสุดท้ายจะถูกจัดเรียงจากสูงสุดไปต่ำสุดและ 5 รายการย่อยรายการสุดท้ายสองรายการจะเรียงลำดับจากสูงสุดไปต่ำสุด)
- เรียงลำดับ
- รวมรายการย่อยทั้งหมดเข้าด้วยกันเพื่อสร้างรายการเดียวอีกครั้ง
ตัวอย่าง:
อินพุต: n=7
และ[3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10]
ขั้นตอนที่ 1: [[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]]
ขั้นตอนที่ 2: [[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]]
ขั้นตอนที่ 3 / เอาต์พุต:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5]
อินพุต: n=4
และ[7,4,-8,9,3,19,0,-23,-13,13]
ขั้นตอนที่ 1: [[7,4,-8,9],[3,19,0,-23],[-13,13]]
ขั้นตอนที่ 2: [[-8,4,7,9],[-23,0,3,19],[13,-13]]
ขั้นตอนที่ 3 / เอาต์พุต:[-8,4,7,9,-23,0,3,19,13,-13]
กฏท้าทาย:
- อินพุตจำนวนเต็ม
n
รับประกันว่ามากกว่า 1 n
ขนาดของจำนวนเต็มรายการรับประกันได้ว่าจะมีขนาดใหญ่กว่า- รายการย่อยต่อท้ายอาจมีขนาดเล็กกว่า
n
(ดังที่เห็นได้ในตัวอย่างและกรณีทดสอบ) - รูปแบบ I / O มีความยืดหยุ่นในรูปแบบที่เหมาะสม สามารถเป็นรายการ / อาเรย์ของจำนวนเต็มหรือทศนิยมสตริงที่คั่นด้วยเครื่องหมายจุลภาค / space / newline กระแสของจำนวนเต็ม ฯลฯ (เอาท์พุทอาจไม่ใช่รายการ 2 มิติของรายการเช่นขั้นตอนที่ 2 ขั้นตอนที่ 3 เพื่อทำให้แบนกลับเป็นรายการเดียว จำเป็นสำหรับความท้าทายนี้)
กฎทั่วไป:
- นี่คือ รหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ
กรณีทดสอบ:
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]