በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።

በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።

ለGoogle HashCode የዓለም ሻምፒዮና ፍጻሜዎች 2017 እየተዘጋጀሁ ነበር። ይህ በGoogle የተደራጀ የአልጎሪዝም ችግር ያለው ትልቁ ውድድር ነው።

C++ ከባዶ መማር የጀመርኩት በዘጠነኛ ክፍል ነው። ስለ ፕሮግራም አወጣጥ፣ አልጎሪዝም ወይም ዳታ አወቃቀሮች ምንም የማውቀው ነገር የለም። የሆነ ጊዜ ላይ የመጀመሪያውን መስመር ጻፍኩ. ከሰባት ወራት በኋላ የፕሮግራም ውድድር በአድማስ ላይ ተንሰራፍቶ ነበር። የእኔ የመማሪያ ስልተ-ቀመር ምን ያህል እንደሚሰራ ለማየት ፈለግሁ። ፍጹም ዕድል ነበር።

ከሁለት ቀናት ውድድር በኋላ ውጤቱ መጣ፡ የወርቅ ሜዳሊያውን አሸንፌያለሁ።

ደነገጥኩኝ። የ5 ዓመት ልምድ ካላቸው ተፎካካሪዎች ቀድሜ ነበር። ጠንክሬ እንደሰራሁ አውቃለሁ፣ ነገር ግን ይህ ስኬት ከምጠብቀው ሁሉ በላይ ነበር። የስፖርት ፕሮግራም ርእሴ እንደሆነ ተረዳሁ እና ወደ እሱ ገባሁ።

ወደ ስኬት እንድመራ ያደረገኝን አውቃለሁ እና ላካፍላችሁ እፈልጋለሁ።

በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።

ጽሑፉ የተተረጎመው በ EDISON ሶፍትዌር ድጋፍ ነው, እሱም የፕሮግራም አዘጋጆችን ጤና እና ቁርሳቸውን ይንከባከባል, እንዲሁም ብጁ ሶፍትዌር ያዘጋጃል.

የትኛውን የፕሮግራም አወጣጥ ቋንቋ መምረጥ ነው።

  • C ++ - በጣም ይመከራል! እሱ በጣም ፈጣን ነው። በ STL ምክንያት ስልተ ቀመሮችን መተግበር ትንሽ ጊዜ ይወስዳል። C++ በሁሉም ውድድሮች ተቀባይነት አለው። የመጀመሪያውን የኮድ መስመሬን በC ++ ውስጥ ጻፍኩ።
  • ሐ - በSTL ምክንያት C++ ይማሩ። C ካወቁ በC++ ፕሮግራም ማድረግም ይችላሉ።
  • ጃቫ ዘገምተኛ የፕሮግራም አወጣጥ ቋንቋ ነው። ትልቅ ኢንቲጀር ክፍል አለው፣ ግን ብዙም አይጠቅምህም። ፉክክር የጊዜ ገደብ ካለው፣ በጃቫ በእርግጠኝነት ያልፋሉ። ጃቫ በሁሉም ውድድሮች ተቀባይነት የለውም።

የት ልምምድ ማድረግ ይችላሉ

አሳስባለው የሉል መስመር ዳኛ (SPOJ). በብዛትና በጥራት ውጤታማ ግብአት ነው። ችግሮችን በመፍታት ሂደት ውስጥ ከተጣበቁ አዘጋጆች እና መፍትሄዎች በመስመር ላይ ይገኛሉ። ከዚህ ጣቢያ በተጨማሪ እመክራለሁ SPOJ መሣሪያ ስብስብ и ችግር ክላሲፋየር ለ SPOJ.pl.

በመጀመሪያ ፣ ስለ መሰረታዊ ነገሮች እውቀትዎን ማሻሻል ያስፈልግዎታል

አንዴ የቋንቋውን አገባብ ከተለማመዱ, አንዳንድ ችግሮችን ለማሸነፍ አንዳንድ ችግሮች አሉ. ልምምድ በሚያስፈልጋቸው ቀላል ችግሮች ይጀምሩ. በዚህ ደረጃ, ዋናው ነገር የእርስዎን የፕሮግራም ዘይቤ መወሰን ነው. ምናልባት ብዙ ነጭ ቦታ ያለው ኮድ መጻፍ ትወድ ይሆናል፣ ምናልባት ላይሆን ይችላል። ምናልባት ቅንፍቹን “ከሆነ” ጋር በተመሳሳይ መስመር ላይ ታስቀምጠዋለህ ወይም ምናልባት በተለየ መስመሮች ላይ ታስቀምጣቸዋለህ።

የፕሮግራም አወጣጥ ስታይልህን ማግኘት አለብህ ምክንያቱም የአንተ ስታይል ነው።

እሱን ሲፈልጉ ሁለት መሰረታዊ መርሆችን አስታውሱ፡-

  • ኮድዎ ለመተግበር ቀላል መሆን አለበት። ያቀረቡትን መፍትሄ ተግባራዊ ለማድረግ ምቾት ሊሰማዎት ይገባል. ለምን? ምክንያቱም በውድድር ወቅት፣ የሚፈልጉት የመጨረሻው ነገር በኮድዎ ውስጥ መጥፋት ነው። የኮዱን አተገባበር እንዴት ማቃለል እንደሚቻል በማሰብ ሁል ጊዜ ተጨማሪ 5 ደቂቃዎችን ለማሳለፍ 10 ደቂቃዎችን ለማወቅ መሞከር የተሻለ ነው።
  • ኮድዎ ለማንበብ ቀላል መሆን አለበት። ኮድ ለማንበብ ቀላል ሲሆን ለማረም ቀላል ነው። ነገሩን እንጋፈጠው፤ ሳንካዎች በየጊዜው ይከሰታሉ። 10 ደቂቃ ሲቀርህ ያንን ስሜት ታውቃለህ እና መጥፎውን ስህተቱ ሳታገኝ ታውቃለህ? በእርግጥ ታደርጋላችሁ። ይህንን ሁኔታ ለማስቀረት, ሊነበብ የሚችል ኮድ ይጻፉ. አንዴ ማረም ከጀመሩ በኋላ, ኮዱ ተፈጥሯዊ እና ለመረዳት ቀላል ይመስላል.

የእኔ ምሳሌ እዚህ አለ። የፕሮግራም አወጣጥ ዘይቤ.

የእድገት ችሎታዎን እንዴት ማሻሻል እንደሚችሉ

ልምምድ, ልምምድ እና ተጨማሪ ልምምድ. የመጀመሪያዎቹን 250 በጣም ሊፈቱ የሚችሉ ችግሮችን እንድትሰራ እመክራለሁ። SPOJ. በቅደም ተከተል ይፍቷቸው. ለእያንዳንዳቸው ስለ መፍትሄው በማሰብ ቢያንስ ለአንድ ሰአት አሳልፉ።

አትበል: "ይህ ችግር ለእኔ በጣም ከባድ ነው, ቀጣዩን ለመፍታት እሞክራለሁ." ተሸናፊዎች የሚያስቡት እንደዚህ ነው።

አንድ ወረቀት እና እርሳስ ይውሰዱ. አስብበት. ምናልባት መፍትሄ ሊያገኙ ይችላሉ, ምናልባት ላይሆኑ ይችላሉ. ቢያንስ፣ አልጎሪዝም አስተሳሰብን ያዳብራሉ። በአንድ ሰአት ውስጥ መፍትሄ ማምጣት ካልቻሉ በመድረኩ ላይ ወይም በጽሁፎች ላይ ዝግጁ የሆነ መፍትሄ ይፈልጉ.

በዚህ አካሄድ ምን ታሳካላችሁ? ኮድ በመጠቀም ሃሳቦችዎን በፍጥነት መተግበርን ይማሩ። እና ክላሲካል ችግሮችን እና ስልተ ቀመሮችን አጥኑ።

በሁለተኛ ደረጃ, ስልተ ቀመሮችን እና የውሂብ አወቃቀሮችን መቆጣጠር አለብዎት

ተዋረዳዊ አካሄድን ተከተል። እንዴት መሄድ እንዳለብህ ሳታውቅ መሮጥ ጀመርክ? አይ. ያለ ጠንካራ መሠረት ሰማይ ጠቀስ ፎቆች መገንባት ይችላሉ? እንደገና አይደለም.

በመማሪያ መንገዱ ላይ ያሉትን ደረጃዎች ችላ ማለት አይችሉም። እነሱን ችላ ካልካቸው, የእውቀት ክፍተቶች ይቀሩዎታል. ከጊዜ ወደ ጊዜ እየባሱ ይሄዳሉ.

በመሠረታዊ ስልተ ቀመሮች እና የውሂብ አወቃቀሮች ይጀምሩ

ለመጀመር አስቸጋሪ ነው. ምናልባት መጀመሪያ ምን ማጥናት እንዳለቦት ስለማታውቅ ይሆናል። ለዛ ነው የቪዲዮ ኮርስ ፈጠርኩ "አልጎሪዝም እና የውሂብ አወቃቀሮች". ይህን ኮርስ ስፈጥር፣ እንዴት ልማር እንደምፈልግ መሰረት አድርጌዋለሁ። ምላሹ የማይታመን ነበር! በመጀመሪያው ወር ውስጥ ከ3000 በላይ ተማሪዎች ከ100 በላይ ሀገራት ለትምህርቱ ተመዝግበዋል።

ቀላል ችግሮችን ለመፍታት ከሰሩ, በጭራሽ አይሻሻሉም.

የማታውቁትን ለመገንዘብ በጣም ውጤታማው መንገድ በተግባር መለማመድ ነው። እንደዛ ነው የተማርኩት። አንድ ፈታኝ ሥራ በመምረጥ ከዚህ በፊት ሰምቼው የማላውቃቸውን ብዙ አዳዲስ ዘዴዎችን ተማርኩ።

የሚሰሩበት እያንዳንዱ ሶስተኛ ችግር አዲስ ነገር ሊያስተምራችሁ ይገባል። ችግሮችን በሚመርጡበት ጊዜ የበለጠ ይጠንቀቁ. የበለጠ አስቸጋሪ ችግሮችን ይምረጡ!

እነዚህን 250 ችግሮች ከ SPOJ ካጠናቀቁ በኋላ ስለ ስፖርት ፕሮግራም ዋና ርዕሰ ጉዳዮች መሰረታዊ ግንዛቤ ይኖርዎታል። ከመሠረታዊ ስልተ ቀመሮች በስተጀርባ ያለውን አመክንዮ በጥልቀት በመረዳት ከፍተኛ ደረጃ ስልተ ቀመሮች ብዙም ውስብስብ አይመስሉም። በዚህ መንገድ እውቀትዎን በተሻለ መንገድ መጠቀም ይችላሉ።

ወደ እያንዳንዱ ዋና ዋና ጭብጦች በጥልቀት ቆፍሩ

እዚህ ላይ አንድ ጠቃሚ ሃብት አለ። ከብዙ መረጃ ጋር። እዚያም ለእያንዳንዱ ርዕስ ምርጥ 10 ስልተ ቀመሮችን እና የውሂብ አወቃቀሮችን ያገኛሉ። ከ SPOJ ከ250 ችግሮች በኋላ፣ ከዚህ ዝርዝር ብዙ ያውቃሉ። ግን ከዚህ በፊት ሰምተህ በማታውቃቸው ብዙ ነገሮችም ትሰናከላለህ። ስለዚህ እነዚህን ርዕሶች በከፍታ ቅደም ተከተል ማጥናት ይጀምሩ።

አዲስ ነገር ከተማሩ በኋላ እውቀትዎን ካላጠናከሩ ሁሉንም ነገር በፍጥነት ይረሳሉ።
አዲስ አልጎሪዝም ከተማሩ በኋላ በተግባር እንዲጠቀሙበት እመክራለሁ. በ 2-3 ተግባራት ውስጥ ይስሩ. በ SPOJ ውስጥ የአልጎሪዝም መለያን ይፈልጉ። እዚያም ይህንን ስልተ ቀመር ለመፍታት የሚያስፈልጉትን ችግሮች ያገኛሉ. በመጀመሪያ እነዚህን ጉዳዮች መፍታት.

ማስተር ዳይናሚክ ፕሮግራሚንግ ወደ ድል ይመራሃልና።
ከኔ ተሞክሮ እያንዳንዱ ውድድር ቢያንስ አንድ ችግር አለበት። ተለዋዋጭ ፕሮግራሚንግ. ብዙ ሰዎች “ዳይናሚክ ፕሮግራሚንግ” የሚለውን ሐረግ ሲሰሙ ራስ ምታት ያጋጥማቸዋል ምክንያቱም ጨርሶ ስላልገባቸው ነው።

ይህ ደግሞ ጥሩ ነው። ምክንያቱም ተለዋዋጭ ፕሮግራሚንግ ከተረዳህ ያሸንፋል።

ተለዋዋጭ ፕሮግራሞችን እወዳለሁ፣ የእኔ ተወዳጅ ርዕስ ነው። የተለዋዋጭ ፕሮግራሚንግ ሚስጥሩ የሀገር ውስጥ ብቻ ሳይሆን በአለም አቀፍ ደረጃ ምርጥ ምርጫዎችን ማድረግ ነው። ችግሩን ወደ ቀላል ንዑስ ችግሮች መከፋፈል አለብህ። እያንዳንዳቸውን እነዚህን ንዑስ ችግሮች አንድ ጊዜ ብቻ ይፍቱ። ከዚያም የተፈቱትን ንዑስ ችግሮችን የሚያጣምር መፍትሄ ይፍጠሩ. ስግብግብ አልጎሪዝም - ከተለዋዋጭ ፕሮግራሞች ተቃራኒ። በእያንዳንዱ እርምጃ በአካባቢው ተስማሚ ምርጫዎችን ማድረግን ይጠይቃል. እና በአካባቢው ጥሩ ምርጫ ወደ መጥፎ ዓለም አቀፋዊ መፍትሄ ሊያመራ ይችላል.

አዲስ ጽንሰ-ሀሳቦችን በሚማሩበት ጊዜ, ይመልከቱ TopCoder አጋዥ ስልጠናዎች. እነሱ በጣም ዝርዝር እና ሊረዱ የሚችሉ ናቸው. ለእነርሱ ምስጋና ይገባኛል ሁለትዮሽ መረጃ ጠቋሚ ዛፎች.

ጠንክሮ መስራት

ለዓመታት ልምምድ ሳያደርጉ ኦሊምፒክን ስላሸነፉ አትሌቶች ሰምተህ ታውቃለህ? እኔ አይደለም.

በየዓመቱ ለኮምፒዩተር ኦሊምፒያድ ዝግጅት የሚጀምረው በሴፕቴምበር ላይ ሲሆን በኤፕሪል ላይ ያበቃል.

ለነዚህ 8 ወራት በየቀኑ ለ5 ሰአታት ተለማምሬያለሁ።

እና አዎ፣ እነዚህን 5 ሰአታት አልጎሪዝም ችግሮችን በመፍታት ብቻ አሳለፍኳቸው። ለ 8 እና ለ 10 ሰዓታት ያህል ልምምድ ያደረግኩባቸውን ቀናት አስታውሳለሁ. ለምን? ምክንያቱም ወደድኩት። በየቀኑ ከትምህርት ቤት ስመለስ በቀጥታ ወደ መኝታ ክፍል ሄድኩኝ, ኮምፒተር ላይ ተቀምጬ አዲስ ችግር መተንተን ጀመርኩ. ወይም ይህን ችግር ለመፍታት ማወቅ ያለብኝን አዲስ ስልተ ቀመር እየተማርኩ ነበር።

ማሸነፍ ከፈለግክ እንዲሁ ማድረግ አለብህ። አንድ ችግር ይምረጡ እና በእሱ ላይ ይጣበቁ። ወደ ሱፐርማርኬት ሲሄዱ ወይም በሚያሽከረክሩበት ጊዜ ያስቡበት።

በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።

በምትተኛበት ጊዜ አንጎልህ በዚያ ቀን የተሰበሰበውን መረጃ እንደሚያበላሸው ታውቃለህ? መጽሐፍትን በፊደል ቅደም ተከተል በመጽሃፍ መደርደሪያ ላይ እየደረደረ ይመስላል። በመሠረቱ፣ አእምሮህ ስላጋጠሙህ የተለያዩ ችግሮች ያስባል።

ይህንን በችሎታ መጠቀም ይቻላል. ወደ መኝታ ከመሄድዎ በፊት አንድ አስቸጋሪ ችግር ያንብቡ እና ችግሩን ለመፍታት ምን እንደሚያስፈልግ ያስታውሱ. በዚህ ደረጃ, መፍትሄውን እራሱ መፈለግ አያስፈልግዎትም. ወደ አልጋህ ሂድ. አንጎልዎ ይህንን ችግር ማካሄድ ይጀምራል. ከእንቅልፍዎ ሲነቁ, ተኝተው እያለ መፍትሄውን እንዳገኙ ሲገነዘቡ ይገረማሉ.

እራስዎ ይሞክሩት። እንደ አስማት ነው።

የቪዲዮ ብሎግ ፈጠርኩኝ።

በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።

ይህ አጭር አንቀጽ ከስፖርት ፕሮግራም ጋር የተገናኘ አይደለም። በሃያዎቹ ውስጥ ከሆንክ እና አለምን እንዴት እንደማየው እያሰብክ ከሆነ መመርመር ትፈልግ ይሆናል። የእኔ ቪዲዮ ብሎግ በ Youtube ላይ. ስለ ዓለም ፣ ስለ ሕይወት እና ስለ ኮምፒተር ሳይንስ እናገራለሁ ።

ብልህ ስራ

ይህ የስኬት ሚስጥር ነው። ግቦች ያስፈልግዎታል.

እኛ ሰዎች ነን እና ወደድን ማዘግየት. እኛ ሁል ጊዜ አሁን መደረግ ያለበትን ነገር መተው እንፈልጋለን። ከተለዋዋጭ የፕሮግራም አወጣጥ ችግሮችን ከመፍታት ይልቅ ኔትፍሊክስን መመልከት ሁል ጊዜ የበለጠ አስደሳች ነው። ይህንን ያውቃሉ እና ማስተካከል ያስፈልግዎታል.

መዘግየትን እንዴት ማሸነፍ እንደሚቻል

እራስዎን ግቦች ያዘጋጁ. ሁልጊዜ አዲስ ነገር መማር የሚችሉባቸው አስደሳች ችግሮች ያገኛሉ (ከላይ የጠቀስኳቸውን ምንጮች ይመልከቱ)። እነዚህ ችግሮች ግን ማንበብ ብቻ ሳይሆን መፈታት አለባቸው።

ስለዚህ መጓተትን እንዴት እንዳሸንፍ እነሆ። የወረቀት ካላንደር ጀመርኩ እና በየቀኑ መፍታት በፈለኳቸው ችግሮች ሞላሁ። ሁለት ቀን ቀደም ብሎ ችግሮችን ሁልጊዜ እሞላለሁ. ስለዚህ በሚቀጥሉት ቀናት ጊዜዬን እንዴት እንደምቆጣጠር አውቃለሁ።

በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።

ስለዚህ ሁሌም ተነሳሳሁ። አንዳንድ ችግሮችን መፍታት እና በቀጣዮቹ ቀናት በቀን መቁጠሪያው ላይ ለመሙላት አዳዲሶችን መፈለግ ነበረብኝ። የተፈቱ ችግሮችን መሻገር ጥሩ ስሜት ይፈጥራል። አንተም እንደምትወደው አውቃለሁ።

የራስዎን የወረቀት የቀን መቁጠሪያ ያግኙ. ነገ የሚረሱትን ሌላ የስራ ዝርዝር በስልክዎ ላይ አይፍጠሩ።

እንዴት በትክክል ማረም እንደሚቻል

ባለሙያ መሆን ይፈልጋሉ? አዎ ከሆነ፣ “በአእምሮህ ማረም” አለብህ።
ይህ እስካሁን የማውቀው በጣም ቀልጣፋ የማረሚያ ዘዴ ነው ምክንያቱም በጭራሽ አራሚ አያስፈልገውም። አንጎልህ ብዙ የኮድ ቅርንጫፎችን በአንድ ጊዜ ይመረምራል እና ከ ጋር ሲነጻጸር በጣም ሰፋ ያለ የኮዱን አጠቃላይ እይታ ይሰጥሃል ክላሲክ አራሚ.

እራስህን ቼዝ ከሚጫወት እና 3 ወደፊት ይሄዳል ብሎ ከሚያስብ አያት ጌታ ጋር ማወዳደር ትችላለህ።

ይህንን ዘዴ የምጠቀመው እንደ መጀመሪያው የመከላከያ መስመር ብቻ ነው። ከዚያ እውነተኛ አራሚ እጠቀማለሁ።

በጭንቅላትዎ ውስጥ እንዴት ማረም እንደሚችሉ ለመማር ልምምድ ማድረግ ያስፈልግዎታል. ለችግሩ መፍትሄ ሲያረጋግጡ እና "የተሳሳተ መልስ" ሲያገኙ በቀጥታ ወደ አራሚ ቁልፍ አይሂዱ። ኮዱን እንደገና ያንብቡ እና ያስቡ፡ “በዚህ መስመር ውስጥ ምን እየሆነ ነው?”፣ “እዚህ ያለው “ከሆነ” በፕሮግራሙ ላይ ምን ተጽዕኖ ያሳድራል?”፣ “ከሉፕ ስንወጣ የድጋሚው ዋጋ ስንት ነው?”

በዚህ መንገድ ለራስዎ ያስባሉ. ከጊዜ በኋላ ኮድ መጻፍ እና በበረራ ላይ ማረም ይማራሉ.

ስለ ደራሲው

በኮምፒውቲንግ ኦሎምፒያድ ከ3 የወርቅ ሜዳሊያዎች 4ቱን እንዴት እንዳሸነፍኩ።
አንድሬይ ማርጌሎዩ በሥራ ፈጠራ፣ በጀማሪዎች እና ከቤት ውጭ ፍላጎት ያለው ጉጉ ፕሮግራመር ነው። እሱን ማነጋገር ይችላሉ። በ LinkedIn ውስጥ.

ትርጉም: Diana Sheremyeva

ምንጭ: hab.com

አስተያየት ያክሉ