SarPhat Author
covid စဖြစ်တော့ ကျောင်းတွေပိတ် အိမ်ပြန်ကျတော့
တစ်ခြားသူတွေတော့မသိဘူး ကျွန်တော်ကတော့ competitive programming ကိုစလုပ်တာပဲ
အဓိကကတော့ leetcode ပေါ့
Problem solving ကိုဘယ်ချိန်မှာစပြီး စိတ်ဝင်စားတာလဲဆို clément mihailescu နဲ့ william lin ရဲ့ interview ကိုကြည့်ပြီးတဲ့အချိန်မှာ
ဒီဘဲ မိုက်လှချည်လား high school ပဲရှိသေးတယ် kosaraju တောင်သိတယ်ဆိုပြီး ဖြစ်သွားတာ
Algoexpert ကို dollar 100လောက်လားမသိဘူး ပေးပြီး စလေ့လာတော့တာပဲ
competitive programming နဲ့ပတ်သတ်ပြီး အကြိုက်ဆုံး မေးခွန်းတွေက array, string manipulation, window sliding, recursion, two pointers နဲ့ tree traversal problem တွေပဲ
အကြောက်ဆုံးကတော့ dynamic programming, backtracking, နဲ့ graph problem တွေ
Dynamic programming ကမကြိုက်လို့မလေ့လာ
မလေ့လာလို့ ပိုမသိ အဲ့လို သံသရာလည်တာပေါ့
top down, bottom up approach တွေနဲ့ memorization လုပ်နေတာထက် recursive နဲ့ run time ဆိုးဆိုး ဝါးဝါး နဲ့ result ထွက်အောင်လုပ်လိုက်ရတာ ပိုကြိုက်တယ်
အဲ့လိုဖြေတိုင်းလည်း pass မဖြစ်လို့ ခုထိ dp ဆိုကြောက်တုန်းပဲ
Backtracking ကတော့မပြောချင်တော့ဘူး sudoku solver ရဲ့ time complexity ကိုခုထိမတွက်တတ်သေးဘူး
:3
data structure ဆိုရင် array ကိုကြိုက်တယ်
Array ပေါ်မှာ two pointer ထောက်လိုက် binary search လိုက်က ပျော်ဖို့အကောင်းဆုံးပဲ
Algorithm ထဲမှာ အကြိုက်ဆုံးက bellman ford
Loop တွေရှယ်ပတ်ပြီး edge တွေကို relax လုပ်သွားတာ
ပြီးတော့ သူရဲ့ proof က ဖတ်ရလည်း လွယ်တယ်
sorting ထဲမှာဆို counting sort ကအတော်မိုက်တယ်
Space သာစဥ်းစားစရာမလိုရင် counting sort က ရှယ်ပဲ mapping သဘောနဲ့ sort တာ
sorting သာစီသွားတာ compare တစ်ခုမှမလုပ်လိုက်ဘူး
array ရဲ့ index တွေထောက်ပြီး time complexity ကို O(max element of array+n ) နဲ့ စီသွားတာ
စောက်ရမ်းမြန်ပေမဲ့သူ့ကို practical မှာသုံးလို့တော့မရဘူး
Leetcode စလုပ်တဲ့အချိန်မှာ ပုစ္ဆာတွေက အတော့်ကိုဖတ်ရခက်တယ်
မေးခွန်းနားလည်ပြီး ဖြေလိုက်ရင်တောင် သုံးထားတဲ့ data structure ကပေါက်တက်ကရဖြစ်နေတာ
ကိုယ့်ဟာကို loop သုံးထပ် algorithmတွေထွင်မိတာနဲ့
time limited error တက်တာ
edge case တွေမစဥ်းစားမိတာနဲ့ out of bound ဖြစ်ကုန်တာ
condition မကိုက်လို့ loop ထဲကနေထွက်မလာနိုင်တာ
recursive တွေပတ်ရင်း stackoverflow တွေဖြစ်ကုန်တာက နေ့စဥ်ကြုံရတဲ့ error တွေပေါ့
problem solving ပဲထိုင်လုပ်တော့ DSA တွေရဲ့ အရေးပါပုံတွေကိုအဲ့ကြမှ သေချာမြင်လာတာပဲ
ကျွန်တော်ကိုယ်တိုင်လည်း competitive programming နဲ့ပတ်သတ်ရင် ဝါသနာရှင်အဆင့်ပဲရှိပါသေးတယ်
သိတဲ့ဟာတော်တော်များများကလည်း basic level လောက်ပဲရှိသေးတာ
linear programming, np problem တွေလာမေးရင် ဘာမှမသိဘူး math foundation မခိုင်တာလဲ ပါတယ်
အပြင်ကသင်တန်းဆရာတွေ DSA သင်တန်းတွေကြဖွင့်ပြီး real world problem တွေနဲ့တွဲမသင်တော့ တစ်ကယ်ကော တတ်ကြရဲ့လားတော့ မသိဘူး
ဥပမာ singly linked list ပဲထားပါတော့
Node တစ်ခုနဲ့တစ်ခု ref တွေနဲ့ချိတ်သွားတာကွာ
အဲ့ဒါသိတော့ ဘာထူးသွားမှာလဲ
ဘာမှမထူးဘူး
ဘာဖြစ်လို့ အဲ့လိုချိတ်တာလဲ ဘာကြောင့်ချိတ်တာလဲ real world မှာ ဘယ်လိုနေရာတွေမှာ သုံးနေတာလဲ
ဒါတွေ example တွေ problem တွေနဲ့မပြနိုင်ရင် DSA က ဘယ်လောက်သင်သင် မတက်ဘူး
Array ကို အားတိုင်း sort ပြီး အကြီးဆုံးကောင်ကို ယူတာထက် heap ကိုသုံးပြီး time complexity ကို ဘယ်လိုလျှော့ချလိုက်တာက ပိုကောင်းတဲ့အကြောင်း example တွေပြနိုင်တာကပိုပြီးမြင်နိုင်တယ် 😄😄😄
သုံးလေးငါးလ theory တွေပဲထိုင်သင်နေရင်ဘာမှ သိလာမှာမဟုတ်ဘူး
ဝမ်းနည်းစရာကောင်းတာက ဒီမှာ cp culture က လူသိနည်းပြီး software development ပိုင်းကို ပိုပြီး focus လုပ်ကြတာပဲ
ဘာမှမဟုတ်ပါဘူး ခုလည်း team lead မရှိတုန်း အားနေတာနဲ့ စိတ်ထဲကပေါ်လာတာရေးချလိုက်တာ 🤣🤣
Keep Reading