โจทย์ฝึกเขียนโปรแกรม — ภาพรวม & วิธีใช้
ฝึกจริงคือทางเดียวที่จะเขียนโปรแกรมเป็น — โจทย์ทุกข้อมีเฉลยละเอียดเป็น Python ให้เปิดดูหลังลองทำเอง
คอร์ส "เขียนโปรแกรมจากศูนย์" สอนแนวคิด ส่วนคอร์สนี้คือสนามฝึก การอ่านเข้าใจกับการลงมือทำได้เองเป็นคนละเรื่อง โจทย์ที่นี่จัดเรียงจากง่ายไปยากตามหัวข้อเดียวกับคอร์สหลัก ทุกข้อมีเฉลยพร้อมคำอธิบายซ่อนไว้ — กดเปิดดูได้เมื่อพยายามเองแล้ว
อย่าเพิ่งเปิดเฉลย! ลองเขียนโค้ดเองที่ replit.com ก่อนอย่างน้อย 10–15 นาที แม้ทำไม่ได้แต่การ "ดิ้นรน" คือช่วงที่สมองเรียนรู้มากที่สุด เปิดเฉลยเมื่อทำเสร็จ (เพื่อเทียบ) หรือเมื่อติดจริง ๆ แล้วเท่านั้น
ขั้นตอนการแก้โจทย์ (UMPIRE)
เทคนิคที่ใช้ได้กับทุกโจทย์ ฝึกให้ติดเป็นนิสัย แล้วเวลาเจอโจทย์สัมภาษณ์จริงจะไม่ตื่นเต้น
- Understand — อ่านโจทย์ให้เข้าใจ: input คืออะไร output ที่ต้องการคืออะไร
- Match — โจทย์นี้คล้ายแบบที่เคยทำไหม ใช้เทคนิค/โครงสร้างข้อมูลอะไร
- Plan — วางขั้นตอนเป็นภาษาคน (pseudocode) ก่อนลงโค้ด
- Implement — เขียนโค้ดตามแผน
- Review — ตรวจ edge case: ค่าว่าง, ตัวเดียว, ค่าซ้ำ, ค่าติดลบ
- Evaluate — วิเคราะห์ว่าเร็วแค่ไหน (Big-O) ปรับให้ดีขึ้นได้ไหม
หัวข้อทั้งหมด
วอร์มอัพ — ฝึกตรรกะพื้นฐานก่อนไปต่อ
จัดการข้อความ นับ ตัด แปลง พลิก
หาค่า นับ กรอง จัดเรียง — ที่เจอบ่อยที่สุด
นับความถี่ จับคู่ ตัดซ้ำ
FizzBuzz, จำนวนเฉพาะ, factorial และอื่น ๆ
ฝึกคิดแบบเรียกตัวเอง
two pointers, sliding window, hash map
ระดับความยาก
| สัญลักษณ์ | ระดับ | ควรทำได้ภายใน |
|---|---|---|
| 🟢 | ง่าย — ใช้ความรู้พื้นฐานตรง ๆ | 5–10 นาที |
| 🟡 | ปานกลาง — ต้องผสมหลายแนวคิด | 15–25 นาที |
| 🔴 | ยาก — ต้องใช้เทคนิคเฉพาะ | 30+ นาที |
ทุกเฉลยเขียนเป็น Python ให้ตรงกับคอร์สหลัก แต่ตรรกะการแก้โจทย์ใช้ได้กับทุกภาษา ถ้าคุณถนัดภาษาอื่นก็ลองแปลงเฉลยเป็นภาษานั้นเป็นการฝึกเพิ่มได้