การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

10
ใช้งานกระเป๋า
ถุงเรียกว่ายังเป็น MultiSet เป็นคอลเลกชันเรียงลำดับ คุณสามารถเรียกมันว่าชุดที่อนุญาตให้ทำซ้ำหรือรายการ (หรืออาร์เรย์) ที่ไม่ได้เรียงลำดับ / จัดทำดัชนี ในความท้าทายนี้คุณจะถูกขอให้ดำเนินการเกี่ยวกับกระเป๋า: การเพิ่มการทดสอบการแตกการหารการนับและการทดสอบความเสมอภาค การดำเนินงาน การดำเนินการที่ระบุอาจไม่ธรรมดา นอกจากนี้รวมสองถุงเป็นหนึ่งเดียวรักษาจำนวนรวมของแต่ละค่า [1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4] ความแตกต่างจะลบออกจากถุงแต่ละองค์ประกอบของถุงอื่นหรือไม่ทำอะไรเลยหากไม่มีองค์ประกอบดังกล่าว [1,2,2,4] - [1,2] = [2,4] [1,2,3] - [2,4] = [1,3] การคูณทวีคูณแต่ละองค์ประกอบในถุง [1,2,3,3,4] * 3 = [1,1,1,2,2,2,3,3,3,3,3,3,4,4,4] 2 * [1,3] = [1,1,3,3] การหารเป็นเรื่องแปลกหนึ่ง: แต่ละองค์ประกอบที่เท่ากันจะถูกใส่ในถุงใหม่ที่เท่ากันองค์ประกอบที่ไม่สามารถสร้างกลุ่ม n ให้อยู่ในถุงได้ ส่งคืนหนึ่งในถุงใหม่ n [1,1,2,2,2] / 2 = …

24
เลือกคำรอบดัชนีที่กำหนดในสตริงที่กำหนด
ใน Windows เมื่อคุณดับเบิลคลิกที่ข้อความคำว่าเคอร์เซอร์ของคุณในข้อความจะถูกเลือก (คุณสมบัตินี้มีคุณสมบัติที่ซับซ้อนมากขึ้น แต่ไม่จำเป็นต้องนำไปใช้กับความท้าทายนี้) ตัวอย่างเช่นสมมติเป็นเคอร์เซอร์ของคุณใน|abc de|f ghi จากนั้นเมื่อคุณคลิกสองครั้งสตริงย่อยdefจะถูกเลือก Input / Output คุณจะได้รับสองอินพุต: สตริงและจำนวนเต็ม งานของคุณคือส่งคืนคำ - สตริงย่อยของสตริงรอบดัชนีที่ระบุโดยจำนวนเต็ม เคอร์เซอร์ของคุณสามารถอยู่ข้างหน้าหรือหลังอักขระในสตริงที่ดัชนีที่ระบุ หากคุณเคยใช้มาก่อนโปรดระบุในคำตอบของคุณ ข้อมูลจำเพาะ (Specs) ดัชนีจะรับประกันต้องอยู่ภายในคำจึงไม่มีกรณีขอบชอบหรือabc |def ghiabc def| ghi สตริงจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น (จาก U + 0020 ถึง U + 007E) คำว่า "word" ถูกกำหนดโดย regex (?<!\w)\w+(?!\w)โดยที่\wถูกกำหนดโดย[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]หรือ "ตัวอักษรและตัวเลขใน ASCII รวมถึงขีดล่าง" ดัชนีสามารถเป็นดัชนี 1 ดัชนีหรือดัชนี0 ดัชนี หากคุณใช้ดัชนี …
20 code-golf  string 

2
สนุกกับธง!
เขียนโปรแกรมเต็มรูปแบบที่มีซอร์สโค้ดขนาด 256 ไบต์หรือน้อยกว่าซึ่งดูที่รูปธงและกำหนดประเทศที่ตั้งค่าสถานะ ไฟล์ ZIP ที่มีธงที่แตกต่างกัน 196 ในความท้าทายสามารถดาวน์โหลดได้จากที่นี่ แหล่งที่มา: [ Flagpedia ] รูปภาพธง 196 เหล่านี้เป็นเพียงอินพุตที่โปรแกรมของคุณต้องจัดการ โปรแกรมของคุณจะไม่มีการป้อนข้อมูล ภาพธงจะอยู่ในไดเรกทอรีเดียวกับโปรแกรมของคุณและตั้งชื่อว่า "f.png" โปรแกรมของคุณจะเปิดไฟล์นี้ระบุและพิมพ์ตัวย่อสองตัวสำหรับประเทศนั้น ๆ หากคุณใช้ภาษาที่ไม่สามารถเปิดไฟล์ได้คุณสามารถเรียกใช้โปรแกรมของคุณได้เช่น./program < f.pngกัน ไฟล์แฟล็กแต่ละไฟล์มีชื่อเหมือนกับเอาต์พุตที่คาดไว้ เอาต์พุตทั้งหมดที่เกิน 2 ตัวอักษรจะถูกละเว้น นี่คือรายการของเอาต์พุต / ชื่อไฟล์ทั้งหมด: ad, ae, af, ag, al, am, ao, ar, at, au, az, ba, bb, bd, be, bf, bg, bh, bi, bj, …

21
ลำดับหญิงและชาย
คำถามนี้อาจยากกว่างาน "สร้างลำดับของตัวเลข" ทั้งหมดเนื่องจากต้องใช้ลำดับสองที่ทำงานอย่างพร้อมเพรียง รอคำตอบจริงๆ! ในหนังสือของเขา " Gödel, Escher, Bach: นิรันดร์สีทองถักเปีย ", Douglas Hofstadter มีลำดับของตัวเลขค่อนข้างน้อยภายในพวกเขาทั้งหมดขึ้นอยู่กับเทอมที่แล้วในทางใดทางหนึ่ง สำหรับข้อมูลในทุกลำดับให้ดูที่หน้าวิกิพีเดียนี้ หนึ่งคู่ของลำดับที่น่าสนใจจริง ๆ คือลำดับหญิงและชายซึ่งมีการกำหนดดังนี้: n > 0สำหรับ นี่คือลำดับหญิงและลำดับชาย งานของคุณคือเมื่อได้รับจำนวนเต็มnเป็นอินพุทให้ส่งคืนรายการลำดับหญิงและลำดับชายด้วยจำนวนคำเท่ากับnในเอาต์พุตสองบรรทัดโดยมีลำดับหญิงในบรรทัดแรกและลำดับชายใน ที่สอง. ตัวอย่างอินพุตและเอาต์พุต: อินพุต: 5 เอาต์พุต:[1, 1, 2, 2, 3] [0, 0, 1, 2, 2] อินพุต: 10 เอาต์พุต:[1, 1, 2, 2, 3, 3, 4, 5, 5, 6] [0, …

19
เส้นทแยงมุม จำกัด ของ Cantor
รับรายการNจำนวนเต็มแต่ละNหลักมีตัวเลขออกตัวเลขที่แตกต่างจากตัวเลขแรกเพราะตัวเลขตัวแรกตัวเลขตัวที่สองเพราะตัวเลขตัวที่สองเป็นต้น ตัวอย่าง รับรายการนี้: 1234 4815 1623 4211 ตัวเลขตัว2932แรกของตัวเลขนั้นแตกต่างจากตัวเลขตัวแรกของตัวเลขตัวที่สองของตัวเลขนั้นแตกต่างจากตัวเลขตัวที่สองของตัวเลขที่สองเป็นต้นดังนั้นมันจะเป็นผลลัพธ์ที่ถูกต้อง ปัจจัยการผลิต คุณอาจใช้ทั้งรายการและNเป็นอินพุตหรือเฉพาะรายการถ้าคุณต้องการ จำนวนเต็มแต่ละรายการในรายการจะต้องมีจำนวนหลักเท่ากับความยาวของรายการ ( N) ตัวเลขจะไม่มีเลขศูนย์นำหน้า รายการอินพุตต้องมีตัวเลขและไม่ใช่สตริง คุณสามารถรับอินพุตเป็นฟังก์ชันอาร์กิวเมนต์ผ่านSTDINหรือสิ่งอื่นที่คล้ายคลึงกันได้ คุณอาจคิดว่ารายการจะต้องไม่เกิน 10 องค์ประกอบ (และไม่มีหมายเลขใดในรายการที่จะใหญ่กว่า2147483647) เอาท์พุท ไม่เพียงพอที่เอาต์พุตไม่ได้อยู่ในรายการ ตัวเลขต้องแตกต่างกันตามที่อธิบายไว้ข้างต้น คุณสามารถใช้กลยุทธ์การเลือกตัวเลขใด ๆ ที่เคารพข้อ จำกัด ของตัวเลขที่แตกต่างกัน จำนวนไม่สามารถมีศูนย์นำหน้า คุณสามารถส่งออกจำนวนผ่านSTDOUTกลับมาจากฟังก์ชั่น ฯลฯ กรณีทดสอบ Input: 12345678 23456789 34567890 45678901 56789012 67890123 78901234 89012345 Possible output: 24680246 Input: 1 Possible output: 2 เกณฑ์การให้คะแนน …

1
เวทมนตร์บูลเล็กน้อย
ท้าทาย รับวิธี C # ต่อไปนี้: private static bool Test(bool a, bool b) { if (a && b) return false; if (a) if (b) return true; return false; } ระบุค่าaและbอื่น ๆ ที่trueส่งคืน สภาพการชนะ รายการแรกที่สามารถให้ข้อโต้แย้งที่ถูกต้องเพื่อให้วิธีการที่กำหนดประเมินผลให้trueชนะ

6
X + Y = Z - แต่ในฐานใด
ความท้าทาย ได้รับหมายเลข 3 X, YและZในฐานBหาBASE ซึ่งนอกเหนือจากXและอัตราผลตอบแทนY Zปัจจัยการผลิตx = 20, Y = 12และZ = 32ได้ผล5เพราะ20 + 12 = 32ในฐาน 5 คุณอาจคิดว่าจะมีฐานที่การเพิ่มถูกต้องเสมอ (มีบางกรณีที่ไม่มีฐานอยู่ขอขอบคุณ @ MasonWheelerและ @ Not ที่ Charlesสำหรับตัวอย่างบางส่วน) ฐานที่ต่ำที่สุดที่เป็นไปได้คือ 1 คุณอาจใช้ตัวเลข 1 หรือ 0 เป็นตัวเลขได้ แต่คุณไม่สามารถผสมตัวเลขเหล่านั้นได้ I / O ตัวเลขของตัวเลขที่ป้อนจะเป็นจำนวนเต็มไม่เป็นลบ คุณอาจสมมติว่าหมายเลขอินพุตมีศูนย์นำหน้าดังนั้นมีความยาวที่เฉพาะเจาะจง (หรือเท่ากันทั้งหมด) คุณอาจใช้ตัวเลขในรูปแบบที่สะดวกที่สุดตราบใดที่ยังไม่ได้ดำเนินการ ซึ่งรวมถึงรูปแบบโดยรวมของตัวเลขสามตัวและรูปแบบของตัวเลขของแต่ละหมายเลขเหล่านั้น โปรดระบุให้ชัดเจนว่าคุณใช้รูปแบบใด หากมีหลายฐานที่เป็นไปได้คุณสามารถส่งออกทั้งหมดหรือเพียงหนึ่งในนั้น คุณอาจคิดว่าฐานและหมายเลขอินพุตจะอยู่ในขีด จำกัด ตัวเลขของภาษาของคุณ กฎระเบียบ อนุญาตให้ใช้ฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ …

17
คุณควรจัดเก้าอี้อย่างไร?
คุณสอนชั้นเรียนของนักเรียนที่มีความชอบที่น่าสนใจสำหรับวิธีการจัดเก้าอี้ของพวกเขา มีข้อกำหนดเฉพาะ 3 ข้อที่พวกเขามีสำหรับวิธีการจัดเก้าอี้: พวกเขาส่วนใหญ่จะถูกจัดเรียงในรูปสี่เหลี่ยมผืนผ้าแม้ว่ามันจะหมายความว่าเก้าอี้บางตัวว่างเปล่า จะต้องมีเก้าอี้ว่างน้อยที่สุดเท่าที่จะทำได้ พวกเขาจะต้องเป็น "squarey" ที่สุด Squarey-ness พิจารณาจากระยะห่างระหว่างความกว้างและความสูงของสี่เหลี่ยมผืนผ้าต่ำกว่าดีกว่า ตัวอย่างเช่นสี่เหลี่ยมผืนผ้าที่มีสี่เหลี่ยมจัตุรัสเป็น4x73 จะมีความเฉพาะเจาะจงมากขึ้น "คะแนน" ของข้อตกลงคือระยะห่างระหว่างความกว้างและความสูงบวกกับจำนวนเก้าอี้ที่ว่างเปล่า ลองยกตัวอย่าง สมมติว่าคุณมีนักเรียน 13 คน คุณสามารถจัดเก้าอี้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้: 1x13 2x7 3x5 4x4 1x13ไม่กว้างมาก อันที่จริง 1 และ 13 อยู่ห่างกัน 12 เราจึงให้ข้อตกลงนี้ 12 คะแนน นอกจากนี้ยังมีเก้าอี้ว่าง 0 ตัวดังนั้นเราจึงเพิ่ม 0 คะแนนทำให้ข้อตกลงนี้มีคะแนน 12 ไม่ดีเท่าไหร่ 2x7ดีกว่าอย่างแน่นอน 2 และ 7 อยู่ห่างกันเพียง 5 เราจึงให้ข้อตกลงนี้ 5 คะแนน …
20 code-golf  math 

19
การนับจำนวนในฐานชีวมวล 62
ภารกิจคือการสร้างสตริงทั้งหมดจาก 'a' ถึง '999' รวมถึงตัวอักษรตัวพิมพ์ใหญ่เช่น: 'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ... '8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba' และอื่น ๆ (เติมในช่องว่าง) โดยเริ่มจากสตริงว่าง การป้อนข้อมูล: จำนวนอักขระต่อเนื่องที่โปรแกรมต้องพิมพ์ถึง เอาท์พุท: อาร์เรย์ที่มีแต่ละสตริงหรือหนึ่งสตริงต่อหนึ่งบรรทัด ชี้แจง: ลำดับไม่สำคัญคุณสามารถพิมพ์ตัวอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก่อนหากคุณต้องการ ผลลัพธ์สามารถคืนค่าได้ทุกประเภทไม่จำเป็นต้องเป็นอาร์เรย์โดยเฉพาะแม้ว่าฉันสงสัยว่าการพิมพ์ชุดค่าผสมทั้งหมดจะไม่เป็นวิธีที่ง่ายที่สุด อินพุตของ3จะพิมพ์สตริงทั้งหมดจาก'a'(หรือ'') ไปยัง'999'input อินพุต5สูงสุด'99999'และต่อไป

1
คำสั่งลูกสุนัข
puppyยูทิลิตี้ต้องใช้ชื่อไฟล์เป็น input และไม่ว่าสิ่งที่คุณคาดว่าจะได้ลูกสุนัขที่จะทำมัน shreds มัน! วิธีฉีก ฉีกหน้าด้วยฟันของคุณแยกไฟล์อินพุตในบรรทัดใหม่ ฉีกขึ้นแต่ละหน้ามีอุ้งเท้าของคุณสำหรับแต่ละบรรทัด (ไม่รวมเลื่อนบรรทัด), การเลือกสุ่มจำนวนเต็มดังกล่าวว่าn 2 <= n <= # of characters in the lineแบ่งบรรทัดออกเป็นnสตริงย่อยที่ไม่ทับซ้อนกันซึ่งมีความยาวแบบสุ่ม กระจายส่วนย่อยของพื้นกระจายเอาต์พุตย่อยแต่ละบรรทัดของแต่ละบรรทัดไปยังชื่อไฟล์สุ่มที่ไม่ซ้ำกัน ( [a-zA-Z0-9]เฉพาะส่วนขยายที่สอดคล้องกันใด ๆ รวมถึงไม่มีความยาว1 <= n <= 12) ในไดเรกทอรีปัจจุบัน เขียนทับไฟล์ที่มีอยู่แล้วภายในไดเรกทอรีปัจจุบัน (รวมถึงไฟล์อินพุตหากอยู่ในไดเรกทอรีปัจจุบัน) ยอมรับได้ตราบใดที่ไฟล์นั้นไม่รบกวนการส่งข้อมูลของคุณ ชี้แจง จะไม่มีการป้อนข้อมูลที่เป็นไปได้ที่จะใช้ชื่อไฟล์ที่เป็นไปได้ทั้งหมด ไฟล์จะประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น (ปกติ 32-127) และ linefeeds และจะใช้ปลายบรรทัดสไตล์ UNIX / Linux (LF ไม่ใช่ CRLF สไตล์ …

12
เคล็ดลับสำหรับการเล่นกอล์ฟใน MATL
MATLภาษาการเล่นกอล์ฟที่สร้างขึ้นโดยหลุยส์ Mendo MATL ได้รับการพิสูจน์แล้วว่ามีการแข่งขันที่สูงและมักจะเต้นในภาษาอื่น ๆ เช่น Pyth, CJam และ Jelly เคล็ดลับที่เป็นประโยชน์สำหรับการเล่นกอล์ฟใน MATL คืออะไร (เช่นเคยหนึ่งเคล็ดลับต่อคำตอบโปรด!) สำหรับบันทึกที่ MATL สามารถทดสอบออนไลน์ได้ที่นี่ เอกสารสามารถพบได้ในGithub
20 code-golf  tips  matl 

4
“ เสร็จงาน” โดยเร็วที่สุด
พื้นหลัง ลองนึกภาพสักครู่ว่าคุณมีงานที่น่าเบื่ออย่างเหลือเชื่อ ทุกเช้าคุณจะได้รับชุดของงานที่คุณควรทำงานในวันนั้น แต่ละงานมีระยะเวลาแน่นอนและเมื่อเริ่มต้นแล้วจะต้องทำให้สำเร็จในครั้งเดียว เจ้านายของคุณจะไม่ยอมเกียจคร้านดังนั้นถ้ามีงานที่คุณยังสามารถทำให้เสร็จก่อนกลับบ้านคุณจะต้องทำงานกับสิ่งใดสิ่งหนึ่ง (คุณสามารถเลือกได้) ในทางกลับกันถ้างานที่เหลืออยู่ทั้งหมดจะทำให้คุณต้องทำงานล่วงเวลาคุณจะต้องกลับบ้านก่อน! ดังนั้นเป้าหมายของคุณคือการลดระยะเวลาการทำงานของคุณให้สั้นที่สุดด้วยการกำหนดตารางเวลาที่ชาญฉลาด ความจริงแล้วสนุก: นี่เป็นหนึ่งในตัวแปรของปัญหาการจัดตารางเวลาขี้เกียจของระบบราชการและมันเป็นปัญหาที่ยาก ( แหล่งที่มา ) อินพุต คุณมีสองอินพุต: จำนวนของ "หน่วยเวลา" ในวันทำงานของคุณ (จำนวนเต็มบวกL) และการรวบรวมงาน (อาร์เรย์ที่ไม่ว่างของจำนวนเต็มบวกTแสดงถึงระยะเวลาของงาน) พวกเขาสามารถดำเนินการในลำดับใด ๆ และในรูปแบบที่เหมาะสม อาร์เรย์Tอาจจะมีงานที่มีระยะเวลามากกว่าแต่ก็รับประกันได้ว่าจะมีอย่างน้อยหนึ่งงานที่มีระยะเวลาที่มากที่สุดLL เอาท์พุต ตารางเวลาที่ถูกต้องเป็นส่วนหนึ่งของงานS ⊆ Tดังกล่าวที่sum(S) ≤ Lและงานที่ไม่ได้อยู่ในทุกS(multiplicities นับ) L - sum(S)มีระยะเวลาอย่างเคร่งครัดมากกว่า ผลลัพธ์ของคุณจะเป็นผลรวมที่น้อยที่สุดที่เป็นไปได้ของกำหนดการที่ถูกต้อง กล่าวอีกนัยหนึ่งคุณจะแสดงจำนวนหน่วยเวลาที่น้อยที่สุดที่คุณต้องทำงานในวันนี้ ตัวอย่าง พิจารณาอินพุต L = 9 T = [3,4,4,4,2,5] วิธีหนึ่งในการกำหนดวันของคุณคือ[4,4]: คุณทำงานสองอย่างให้เสร็จใน 8 หน่วยเวลาและเหลือ 1 …

4
ดึงแม่เหล็กในอาร์เรย์
พื้นหลัง ฉันมีแม่เหล็กที่ทรงพลังหนึ่งแถวและวัตถุโลหะหลายอันที่อยู่ระหว่างพวกมัน แม่เหล็กจะดึงมันไว้ที่ไหน อินพุต ข้อมูลที่คุณป้อนเป็นจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบซึ่งจะมีอย่างน้อยหนึ่ง1รายการ คุณสามารถใช้รูปแบบที่เหมาะสม 0ของอาร์เรย์แทนพื้นที่ว่างเปล่าและ1s แทนแม่เหล็กถาวร ตัวเลขอื่น ๆ ทั้งหมดเป็นวัตถุโลหะซึ่งถูกดึงโดยแม่เหล็ก วัตถุทุกชิ้นจะถูกดึงเข้าหาแม่เหล็กที่ใกล้ที่สุด (หากมีการผูกกันวัตถุนั้นจะถูกดึงไปทางขวา) และมันจะเคลื่อนที่ไปในทิศทางนั้นจนกว่าจะชนกับแม่เหล็กหรือวัตถุอื่น ในที่สุดวัตถุทั้งหมดได้รวมตัวกันรอบ ๆ แม่เหล็ก ลำดับของวัตถุถูกเก็บรักษาไว้ เอาท์พุต เอาต์พุตของคุณคืออาร์เรย์ที่วัตถุทุกชิ้นถูกดึงใกล้กับแม่เหล็กที่ใกล้ที่สุดเท่าที่จะทำได้ ควรมีรูปแบบเดียวกันกับอินพุต ตัวอย่าง พิจารณาอาร์เรย์ [0,0,2,0,1,1,0,2,0,3,0,5,0,1,0] ซ้ายสุดได้รับการดึงต่อคู่แรกของแม่เหล็กเช่นเดียวกับครั้งที่สอง2 มีแม่เหล็กสี่ขั้นตอนไปในทั้งสองทิศทางจึงได้รับการดึงไปทางด้านขวา มันถูกดึงไปทางขวาและมันก็อยู่ระหว่างและแม่เหล็ก ผลลัพธ์ที่ถูกต้องคือ2353 [0,0,0,2,1,1,2,0,0,0,0,3,5,1,0] กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ [0,1,0] -> [0,1,0] [1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0] [7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0] [1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1] [1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0] [1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> …

15
Diamondize a Matrix
รับเมทริกซ์เอาท์พุทเป็นตัวแทนของเมทริกซ์ที่องค์ประกอบด้านบนซ้ายอยู่ด้านบนการต่อต้านเส้นทแยงมุมคือแถวกลางและองค์ประกอบด้านล่างขวาอยู่ที่ด้านล่าง ตัวอย่างเช่นพิจารณาเมทริกซ์ต่อไปนี้: 1 2 3 4 5 6 7 8 9 เมทริกซ์รุ่นเพชรนี้คือ: 1 4 2 7 5 3 8 6 9 อินพุตและเอาต์พุต เมทริกซ์อินพุตจะได้รับเป็นรายการของรายการ (หรืออะไรก็ตามที่คล้ายกันในภาษาที่คุณเลือก) ผลลัพธ์จะเป็นรายการของรายการเช่นกัน เมทริกซ์จะมีจำนวนเต็มบวกเท่านั้น เมทริกซ์อินพุตไม่จำเป็นต้องเป็นจตุรัส เมทริกซ์อินพุตจะมีอย่างน้อย 1 × 1 กรณีทดสอบ Input: [[1]] Output: [[1]] Input: [[1,2],[3,4]] Output: [[1],[3,2],[4]] Input: [[1,2,3],[4,5,6]] Output: [[1],[4,2],[5,3],[6]] Input: [[11,2,5],[3,99,3],[4,8,15],[16,23,42]] Output: [[11],[3,2],[4,99,5],[16,8,3],[23,15],[42]] เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

3
วางหมุดสี่เหลี่ยมลงในรูสี่เหลี่ยม
ฉันรู้สึกทึ่งกับการออกแบบกราฟิกนี้จาก New York Times ซึ่งในแต่ละรัฐของสหรัฐจะถูกแสดงด้วยตารางในตาราง ฉันสงสัยว่าพวกเขาวางสี่เหลี่ยมด้วยมือหรือจริง ๆ แล้วพบว่าตำแหน่งที่เหมาะสมของสี่เหลี่ยม (ภายใต้คำจำกัดความบางอย่าง) เพื่อเป็นตัวแทนของตำแหน่งของรัฐที่อยู่ติดกัน รหัสของคุณจะเป็นส่วนเล็ก ๆ ของความท้าทายในการวางสี่เหลี่ยมอย่างเหมาะสมเพื่อเป็นตัวแทนของรัฐ (หรือรูปร่างสองมิติอื่น ๆ โดยพลการ) โดยเฉพาะมันจะสมมติว่าเรามีศูนย์กลางทางภูมิศาสตร์ทั้งหมดหรือเซนทรอยด์ของรูปร่างใน รูปแบบที่สะดวกและการแสดงข้อมูลที่ดีที่สุดในแผนภาพเช่นนี้คือระยะทางทั้งหมดจากเซนทรอยด์ของรูปร่างไปยังศูนย์กลางของช่องสี่เหลี่ยมที่เป็นตัวแทนของพวกมันน้อยที่สุดโดยมีอย่างน้อยหนึ่งสี่เหลี่ยมจัตุรัสในแต่ละ ตำแหน่งที่เป็นไปได้ รหัสของคุณจะแสดงรายการคู่พิกัด X และ Y ที่ลอยได้จาก 0.0 ถึง 100.0 (รวม) ในรูปแบบที่สะดวกและจะส่งออกพิกัดจำนวนเต็มแบบไม่ลบของหน่วยสี่เหลี่ยมในตารางที่วางอย่างเหมาะสมเพื่อแสดงข้อมูล รักษาความสงบเรียบร้อย ในกรณีที่การจัดเรียงสี่เหลี่ยมหลายแบบนั้นดีที่สุดคุณสามารถส่งออกการจัดเรียงที่เหมาะสมที่สุดได้ จะได้รับพิกัดระหว่าง 1 ถึง 100 คู่ นี่คือรหัสกอล์ฟรหัสที่สั้นที่สุดชนะ ตัวอย่าง: การป้อนข้อมูล: [(0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (1.0, 0.0)] นี่เป็นวิธีที่ง่าย จุดศูนย์กลางของช่องสี่เหลี่ยมในตารางของเราอยู่ที่ 0.0, …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.