Connectivity

    เท่าที่ผมสังเกต ผู้อ่าน Web Site ดูเหมือนจะสนใจหน้าที่ผมเขียนเกี่ยวกับ Algorithm อยู่ไม่น้อย และบางคนก็เขียนมาขอโจทย์เอาไว้ฝีกเขียน เลยเป็น Web Page ทดลองหน้านี้ครับ เอามาลองตลาดดูหน่อย ดูว่ามีคนสนใจจริงๆ แค่ไหน ถ้า Feed Back ไม่ดีเดี๋ยวผมจะหาอะไรมาเสนอขายใหม่

    เรามาดูโจทย์กันเลยดีกว่า

   > 3-4
   --> 3-4
    > 4-9
   -->  4-9
    > 8-0
   --> 8-0
   >2-3
   -->2-3
   >5-6
   -->5-6
   >2-9
   ==> 2-3-4-9
   > 5-9
   --> 5-9
   > 7-3
   --> 7-3
   > 4-8
   --> 4-8
   > 5-6
   ==> 5-6
  > 0-2
  ==> 0-8-4-3-2
  > 6-1
  ==> 6-1
ที่ด้านซ้ายของส่วนนี้ เป็นตัวอย่างหน้าจอครับ สีดำคือสิ่งที่คุณพิมพ์เข้าไป ซึ่งประกอบด้วยตัวเลข 2 ส่วน แต่ละส่วนคั่นด้วยเครื่องหมาย - นั่นเอง ส่วนสีแดงเป็นการแสดงผลจากการคำนวณของเครื่องคอมพิวเตอร์ครับ

เส้นนี้นำเสนอการเชื่อมต่อของจุด เช่น 3-4 หมายถึง จุด 3 และ จุด 4 เชื่อมกัน 4-9 ก็หมายถึง จุด 4 และ 9 เชื่อมกันเป็นต้น แต่เราจะไม่เชื่อมพร่ำเพรื่อนะครับ ลองดูตัวอย่าง เมื่อพยายาม เชื่อมจุด 2-9 คุณจะเห็นว่า เราสามารถอ้อม 2-3, 3-4 แล้วค่อย 4-9 ทำให้เราไม่ต้อง เชื่อม 2-9 โดยตรงครับ

เมื่อเข้าใจแล้ว ให้ลองเขียนโปรแกรมนี้ ส่งมาที่ email หรือที่ Web Board ก็ได้ ใครทำสำเร็จผม จะเอา code นั้นเขียน update ที่ page นี้ครับ ผมเน้นประสิทธิภาพของ Algorithm ครับ ถ้าไม่เร็ว ก็ควรจะกิน resource ของ เครื่องน้อย แต่ถ้าทั้งเร็วและกินน้อยก็สุดยอดครับ

ช่วยๆ เขียนกันหน่อยครับ ผมจะเขียนคำตอบที่ผมคิดเร็วๆ นี้ แต่ไม่แน่นะครับอาจจะมี Code ที่ดีๆ กว่าที่ผมคิดในใจก็ได้ คิดว่ามาแลกเปลี่ยนความรู้กัน

ถ้าใครเขียนไม่ได้ไม่เป็นไรนะครับ พยายามดูก่อน ถ้าติดตรงไหนเขียนมาคุยกันได้