บทนำ:
(ที่มา: Wikipedia )
เมื่อเราดูรุ้งมันจะมีสีจากบนลงล่างเสมอ:
สีแดง; ส้ม; สีเหลือง; เขียว; สีน้ำเงิน; คราม; ม่วง
ถ้าเราดูที่วงแหวนเหล่านี้แต่ละวงแหวนสีแดงย่อมใหญ่กว่าวงแหวนม่วง
นอกจากนี้ยังเป็นไปได้ที่จะมีรุ้งสองหรือสามตัวในเวลาเดียวกัน
ทั้งหมดนี้รวมกันจะถูกนำมาใช้ในการท้าทายนี้:
ท้าทาย:
รับรายการของจำนวนเต็มขนาดที่แน่นอน 7 ซึ่งแต่ละค่าระบุว่ามีอนุภาคสีในรูปแบบรุ้ง (ที่ดัชนีที่ใหญ่ที่สุดหมายถึงสีแดงและดัชนีที่เล็กที่สุดที่ระบุสีม่วง) เอาท์พุทจำนวนรุ้งที่สามารถเกิดขึ้น
จำนวนเต็มรุ้งเดียวจะต้องมีอย่างน้อย 3 สีม่วง, สีคราม 4x, 5x สีฟ้า, 6x สีเขียว, 7x สีเหลือง, สีส้ม 8x, สีแดง 9x รุ้งที่สองอยู่ด้านบนของมันจะใหญ่กว่าวงแหวนสีแดงของรุ้งแรก (รวมช่องว่างระหว่างหนึ่ง) ดังนั้นมันจะต้องมีสีม่วงอย่างน้อย 11x, 12x สีคราม, 13x สีน้ำเงิน, 14x เขียว, 15x เหลือง, ส้ม 16x สีแดง 17x นอกเหนือจากสายรุ้งแรกที่ใช้ รุ้งที่สามจะเริ่มที่ 19x ม่วงอีกครั้ง
ตัวอย่าง:
อินพุตรายการ: [15,20,18,33,24,29,41]
เอาต์พุต:2
ทำไม? เรามีสีม่วง 15x และเราต้องการอย่างน้อย 3 + 11 = 14 สำหรับรุ้งสองตัว เรามีสีคราม 20 อันและเราต้องการอย่างน้อย 4 + 12 = 16 สำหรับรุ้งสองตัว อื่น ๆ เรามีสีเพียงพอสำหรับรุ้งสองตัว แต่ไม่เพียงพอที่จะสร้างรุ้งกินน้ำสามลูกดังนั้นผลผลิตจึงเป็น2
เช่นนั้น
กฏท้าทาย:
- จำนวนเต็มในอินพุตอาร์เรย์รับประกันว่าไม่เป็นลบ (
>= 0
) - รายการอินพุตถูกรับประกันว่ามีขนาด 7 อย่างแน่นอน
0
เมื่อไม่มีรุ้งสามารถเกิดขึ้นเราเอาท์พุท- รูปแบบอินพุตและเอาต์พุตมีความยืดหยุ่น สามารถเป็นรายการหรืออาร์เรย์ของจำนวนเต็มของทศนิยมสามารถนำมาจาก STDIN เอาต์พุตสามารถส่งคืนจากฟังก์ชันในประเภทเอาต์พุตที่เหมาะสมหรือพิมพ์โดยตรงไปยัง STDOUT
จำนวนสีขั้นต่ำที่จำเป็นสำหรับn
ปริมาณรุ้ง:
Amount of Rainbows Minimum amount per color
0 [0,0,0,0,0,0,0]
1 [3,4,5,6,7,8,9]
2 [14,16,18,20,22,24,26]
3 [33,36,39,42,45,48,51]
4 [60,64,68,72,76,80,84]
5 [95,100,105,110,115,120,125]
etc...
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
อย่าปล่อยให้ภาษารหัสกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชัน / เมธอดพร้อมพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ
กรณีทดสอบ:
Input: [15,20,18,33,24,29,41]
Output: 2
Input: [3,4,5,6,7,8,9]
Output: 1
Input: [9,8,7,6,5,4,3]
Output: 0
Input: [100,100,100,100,100,100,100]
Output: 4
Input: [53,58,90,42,111,57,66]
Output: 3
Input: [0,0,0,0,0,0,0]
Output: 0
Input: [95,100,105,110,115,120,125]
Output: 5
Input: [39525,41278,39333,44444,39502,39599,39699]
Output: 98
0,0,0,0,0,0,0
ขอบกรณีแม้ว่า :( (มันไม่พอดีกับตรรกะ 1 ช่องว่าง)