chunrapeepat / 10days-basic-algorithm-course

10 Days Basic Algorithm Course (For Asking Question)
1 stars 0 forks source link

lesson 3 #7

Open jiravatt opened 4 years ago

jiravatt commented 4 years ago

เหมือนเดิมครับ พยายามจะรวบรวมข้อผิดพลาดและคำถามเอาไว้ในโพสต์นี้นะครับ

นอกจากนั้นไม่เจออะไรครับ เป็นโจทย์ที่ดีข้อนึงเลย ถ้าเป็นไปได้ใน lesson นี้อยากให้มีมากกว่า 1 ข้อนะครับ จะได้เห็นว่าแต่ละข้อใช้ approach เฉพาะตัวที่แตกต่างกัน ซึ่งน่าจะทำให้เห็นภาพความเป็น ad hoc มากขึ้นครับ ส่วนเฉลยก็มี comment ทำให้คิดและทำความเข้าใจตามไปได้โดยง่ายเช่นเดิมครับ

รอข้อต่อไปนะครับ :)

chunrapeepat commented 4 years ago

@jiravatt ขอบคุณมากเลยครับ จริงก็อยากทำหลายข้อเหมือนกัน แต่น่าจะต้อง modify codebase เยอะเลย

แล้วอยากรู้ว่าตัวโจทย์นี่ยากหรือง่ายไปไหมครับ

jiravatt commented 4 years ago

ผมว่าโอเคนะครับ ไม่ยากเกินไป แต่ก็ไม่ง่าย สำหรับผมที่อ่านตอนแรก ความรู้สึกคือเหมือนจะมีอะไร เลยมานั่งทด ๆ เขียน ๆ ดู ก็เลยเห็น pattern ได้ไม่ยาก ส่วนตอน implement ก็อาจจะติดนิดหน่อยแต่ก็ไม่ลำบากอะไรมากนักครับ :)

onemanking commented 4 years ago

ผมยังงงๆ โจทย์อยู่ ถ้าสมมุติ costToMakeEqual("1011", "0101") ข้อนี้ต้องได้ 3 ใช่ไหมครับ เลือกทำ operation ที่ toggle bit เอาใช่หรือไหมครับ

chunrapeepat commented 4 years ago

ผมยังงงๆ โจทย์อยู่ ถ้าสมมุติ costToMakeEqual("1011", "0101") ข้อนี้ต้องได้ 3 ใช่ไหมครับ เลือกทำ operation ที่ toggle bit เอาใช่หรือไหมครับ

ได้ 2 ครับ

10 -> 01 (สลับ) + 1 -> 0 (Toggle) + 1 (เหมือนเดิม) = 0101 (Cost = 1 + 1 = 2)

onemanking commented 4 years ago

ผมยังงงๆ โจทย์อยู่ ถ้าสมมุติ costToMakeEqual("1011", "0101") ข้อนี้ต้องได้ 3 ใช่ไหมครับ เลือกทำ operation ที่ toggle bit เอาใช่หรือไหมครับ

ได้ 2 ครับ

10 -> 01 (สลับ) + 1 -> 0 (Toggle) + 1 (เหมือนเดิม) = 0101 (Cost = 1 + 1 = 2)

อ๋อ หมายถึงในสามารถใช้ operation ทั้ง swap และ toggle ภายในโจทย์เดียวได้ใช่ไหมครับ ไม่ใช่เลือกทำอันไหนอันหนึ่ง

jiravatt commented 4 years ago

เท่าที่ผมเข้าใจคือใช่ครับ (ใช้ทั้งคู่ในข้อเดียวกันได้) ใช้ swap ตอนที่ควรใช้ และใช้ toggle ตอนที่ควรใช้ครับ :)

onemanking commented 4 years ago

ผ่านแล้วครับ ขอบคุณครับ ฮ่าๆ

namirinz commented 4 years ago

แหะ เพิ่งเห็นว่าใช้ได้ทั้งสอง operation นั่งงมโค้ดทั้งวันเลย :V

ปล.ข้อนี้น่าจะยกตัวอย่าง Test Case ที่ใช้ทั้ง 2 operation นะครับ

chunrapeepat commented 4 years ago

@namirinz ขอบคุณสำหรับ Feedback ครับเดี๋ยวจะไปปรับแก้นะครับ