วงแหวนเว็บ

neizod's speculation

insufficient data for meaningful answer

Bangkok Code War 2020

Saturday, December 19, 2020, 09:01 PM

เสาร์นี้มางาน Bangkok Code War งานปาร์ตี้เขียนโค้ดส่งท้ายปี 2020 ที่เหมือนทีมงานจะรู้นิสัยเหล่าโปรแกรมเมอร์เป็นอย่างดี เลยเลือกที่จะเริ่มงานตอนบ่ายสอง ทำให้เรามีเวลาหลับได้อย่างเต็มอิ่มก่อนที่จะแวะมา 😜 งานนี้นัดมากับ @evemonpriya (ส่วน @scomma กดบัตรไม่ทัน 😂) เลยได้เชิญชวนคุณ chris.hall ผู้รักการเขียน Python เป็นงานอดิเรกฟอร์มทีมให้ครบสามคนที่หน้างาน

ด้านการแข่ง โค้ดถือว่าง่ายมากๆ แต่เน้นเขียนเร็วแข่งกัน ดังนั้นถ้าใช้ภาษาที่ถนัดมือ เขียนได้สั้น และรู้จัก library มากๆ ก็จะช่วยย่นระยะเวลาได้เยอะโข

ตัวอย่างโจทย์ในงานที่ถามว่าเราต้องเดินทางเป็นจำนวนกี่สถานี

อย่างเช่นโจทย์รอบ qualification ที่เราเจอ โจทย์ให้ไพ่มาหลายสำรับ สลับไพ่ทั้งหมดรวมกัน ดึงไพ่ทิ้งไปใบนึงแล้วหงายหน้าไพ่ที่เหลือทั้งหมดให้ดู ถามว่าไพ่ใบที่หายไปคืออะไร?

แม้โจทย์จะง่าย แต่ถ้าเขียนโปรแกรมเองก็น่าจะเสียเวลาพอสมควร เพราะต้องสร้าง mapper ขึ้นมาเพื่อเก็บว่าเคยเห็นไพ่แต่ละใบไปเป็นจำนวนเท่าไหร่แล้ว พอวนลูปเช็คไพ่ครบทุกใบก็ค่อยวนลูปอีกรอบหาว่าไพ่ใบไหนที่มีจำนวนไม่เท่ากับไพ่ใบอื่น

แต่ถ้ารู้จัก Counter ของ collections ใน Python ก็จบเลย เพราะเพียงสั่งแค่นี้ก็จะตอบโจทย์ได้แล้ว

Counter(cards).most_common()[-1]

แน่นอนว่าหากรู้จัก library เยอะๆ แล้วจะได้เปรียบ ถ้าไปเจอกับโจทย์แนวที่ไม่รู้จักคุ้นเคยเลยก็จะเสียเปรียบเช่นกัน เพราะโจทย์ในรอบ quarter final ถามให้เราหาค่า md5 ของสายอักขระอันหนึ่ง อันที่จริงก็พอจะเคยใช้ library นี้มาบ้างแล้วแหละ แต่ด้วยความไม่ชินบวกกับความลนเลยทำให้เกิด error หลายครั้ง ตั้งแต่ string ของ Python ไม่สามารถเอาไป md5 ตรงๆ ได้ (ต้อง .encode() ก่อน) ไปจนถึงการเอาค่าออกมาจาก md5 ต้องใช้ .hexdigest() เลยทำให้เขียนโค้ดข้อนี้ไม่ทันไปอย่างน่าเสียดาย

พิซซ่าชิ้นใหญ่ยักษ์ที่งานนี้เลี้ยง

งานจัดมาได้สนุกดีครับ มีพิซซ่าถาดใหญ่ยักษ์ที่กินเพียงชิ้นเดียวก็อิ่ม after party ก็ยังมีเบียร์ให้ดื่มไม่อั้นอีก

แต่ที่ดีที่สุดของงาน คงเป็นการได้แวะเวียนมาเจอะเจอกับเพื่อนเก่าและพานพบกับเพื่อนใหม่ เช่น @dtinth @NnmnsP @phoomparin @MMKnightKung dancearmy pat.thumjaratwong jenny.twwmk และคนอื่นๆ อีกมากมายที่เราอาจจะลืมเอ่ยนาม 🙏

ไว้ปีหน้าถ้าไม่ติดอะไรคงได้เจอกันอีกแน่นอน 😉

neizod

author