บทความ

กำลังแสดงโพสต์จาก ตุลาคม, 2019

Coding Problems Solved Ep.1

รูปภาพ
This problem was asked by Microsoft. Compute the running median of a sequence of numbers. That is, given a stream of numbers, print out the median of the list so far on each new element. Recall that the median of an even-numbered list is the average of the two middle numbers. For example, given the sequence [2, 1, 5, 7, 2, 0, 5], your algorithm should print out: หลังจากที่ผมนั่งอ่านและทำความเข้าใจโจทย์ข้างต้นแล้วผมสรุปตามประเด็น * แนวคิดได้ตามนี้ โจทย์ข้อนี้ให้ Input เป็น 2, 1, 5, 7, 2, 0, 5 ตามลำดับ และให้ Output เป็น 2, 1.5, 2, 3.5, 2, 2,2 ตามลำดับ อีกเช่นกัน ให้หา median เอ๊ย! แล้วไอ้ median มันคืออะไร ? นี้คำถามแรกที่เกิดขึ้นมากับผมเพราะผมไม่เข้าใจ ผมจึงนำ keyword ตัวนี้ไปหาข้อมูลต่อที่อาจารย์ Google เลยได้ถึงบางอ้อว่ามันคือ "มัธยฐาน" หลังจากศึกษา theory of median เสร็จ ผมก็เลยเข้าใจวิธีแก้ปัญหาครับ หลังจากไม่สงสัยอะไรแล้ว เราก็มาเริ่ม coding กันเลย * อ้างอิงแนวคิดของผมที่ใช้แก้โจทย์หากใครจำไม่ได้กด "ตรงนี้ๆ" สุดท้ายใครมีวิธีที่ล้ำลึก หรือ ...

Coding Problems Solved Planning

รูปภาพ
There's a staircase with N steps, and you can climb 1 or 2 steps at a time. Given N, write a function that returns the number of unique ways you can climb the staircase. The order of the steps matters. For example, if N is 4, then there are 5 unique ways: 1, 1, 1, 1 2, 1, 1 1, 2, 1 1, 1, 2 2, 2 What if, instead of being able to climb 1 or 2 steps at a time, you could climb any number from a set of positive integers X? For example, if X = {1, 3, 5}, you could climb 1, 3, or 5 steps at a time. Generalize your function to take in X. ขั้นตอนการแก้ปัญหาของผมมีดังนี้  อ่านโจทย์ด้วยความรู้ด้านภาษาเท่าที่มี ส่วนไหนแปลได้ก็แปล ส่วนไหนแปลไม่ได้ก็ใช้ Google Transate เป็น tool ช่วย  ค้นหา keyword จาก sentence ว่าโจทย์มีกล่าวหรือพูดถึงหลักการอะไรหรือเปล่า  นำ keyword ที่ได้ไปค้นหาที่ Google เพื่อศึกษาที่มาที่ไปและวิธีการคิดคำนวน [ในกรณีที่เราไม่มีความรู้ หรือ ไม่เข้าใจว่ามันคืออะไร]  หลังจากเข้าใจหลักการแล้ว วนกลับไปตรวจสอบในข...