Codility टेस्ट: आपका स्कोर वास्तव में क्या दर्शाता है

· 8 मिनट पढ़ें

ज्यादातर लोग Codility टेस्ट में पास हुए समझकर फेल हो जाते हैं। टास्क स्टेटमेंट में दिए गए उदाहरण सभी सही उत्तर प्रिंट करते थे, एडिटर ने OK कहा, सबमिशन सफल रहा — और रिपोर्ट में 40% आया। कारण सरल है और टेस्ट देने से पहले इसे जानना ज़रूरी है: जो उदाहरण आप देखते हैं, वे स्कोर का हिस्सा नहीं होते।

स्कोर वास्तव में किन भागों से बनता है

हर टास्क दो अलग-अलग मानकों पर ग्रेड किया जाता है, और उनका परिणाम अलग-अलग दिखाया जाता है।

  • Correctness — वह अनुपात जहाँ आपका आउटपुट छिपे हुए टेस्ट केसों में अपेक्षित उत्तर से मेल खाता है। प्रत्येक टास्क कम से कम छह मूल्यांकित केस चलाता है, और आपका टास्क स्कोर उन केसों में से पास हुए केसों का प्रतिशत होता है। स्टेटमेंट में दिखाए गए उदाहरण केवल डेमोंस्ट्रेशन होते हैं, मूल्यांकित केस नहीं।
  • Performance — इनपुट बढ़ने पर समाधान समय और मेमोरी लिमिट के भीतर रहता है या नहीं। यह केवल उन टास्कों पर लागू होता है जहाँ स्केलेबिलिटी अंक का हिस्सा होती है, और आपके सभी उत्तर सही होने पर भी इसका मूल्यांकन किया जाता है।

दूसरा मानक वह है जिसके लिए लोग अक्सर योजना नहीं बनाते। O(n²) लूप, जबकि टास्क O(n log n) के लिए डिज़ाइन किया गया है, हर केस में सही उत्तर देता है और समाप्त हो जाता है, फिर भी अधिकांश Performance अंक खो देता है, क्योंकि बड़े केस टाइम‑आउट हो जाते हैं।

कंस्ट्रेंट्स को एक कॉम्प्लेक्सिटी बजट की तरह पढ़ें

कंस्ट्रेंट्स ब्लॉक सजावट नहीं है। यह टास्क आपको बताता है कि वह कौन सी कॉम्प्लेक्सिटी स्वीकार करेगा, और यह पेज पर सबसे उपयोगी जानकारी है।

  • N up to 100,000 or more — कोई भी क्वाड्रेटिक एल्गोरिद्म टाइम‑आउट हो जाएगा। यहाँ आपसे सॉर्टिंग, हैश मैप, दो पॉइंटर, या प्रीफ़िक्स सम लागू करने को कहा जा रहा है।
  • N up to a few thousand — O(n²) आमतौर पर ठीक रहता है, और कोई चतुर तरीका अपनाने से वह समय खर्च होगा जो आपको कहीं और चाहिए।
  • Values up to 2 billion — टास्क यह बता रहा है कि 32‑bit एग्रीगेटर ओवरफ़्लो हो जाएगा। जिस भाषा में यह मायने रखता है, वही यहाँ भी मायने रखता है।

कोड लिखने से पहले लक्ष्य कॉम्प्लेक्सिटी निर्धारित कर लें। मशीन‑ग्रेडेड टेस्ट में ऐसे कोई नहीं होता जो आपके सही अंदाज़े के लिए अंक दे, अगर आपने उसे लागू नहीं किया।

जहाँ अंक वास्तव में जाते हैं

तीन पैटर्न अधिकांश खोए हुए स्कोर का कारण बनते हैं, और इनमें से कोई भी एल्गोरिदमिक क्षमता से संबंधित नहीं है।

  • Edge cases nobody tested. खाली इनपुट, एकल तत्व, सभी तत्व समान, न्यूनतम और अधिकतम अनुमत मान। ये ठीक वही छिपे हुए केस हैं, क्योंकि इन्हें लिखना सबसे सस्ता होता है।
  • Off-by-one at the boundary. Inclusive बनाम exclusive रेंजेज़ किसी भी डेटा स्ट्रक्चर से अधिक Codility अंक खर्च करती हैं।
  • Running out of time on task three. टाइमर पूरे टेस्ट को कवर करता है, न कि प्रत्येक टास्क को। वह व्यक्ति जो हर टास्क पर काम करने वाला brute force छोड़ देता है, आमतौर पर एक परिपूर्ण समाधान और दो खाली टास्क वाले व्यक्ति से अधिक अंक प्राप्त करता है।

आंशिक क्रेडिट वास्तविक है, इसलिए इसका उपयोग करें

क्योंकि स्कोर केसों का प्रतिशत होता है, एक ईमानदार brute force खाली एडिटर से बहुत अधिक मूल्य रखता है। समय दबाव में सबसे अच्छा स्कोर पाने की क्रम लगभग हमेशा समान रहता है: स्पष्ट समाधान लिखें, उसे सबमिट करें, फिर उसे ऑप्टिमाइज़ करें और फिर से सबमिट करें। आप पहले अंक जमा करते हैं और फिर उन्हें सुधारते हैं।

यदि आपको पता है कि आपका समाधान बहुत धीमा है और आप इसे ठीक नहीं कर सकते, तो उसे छोड़ दें। बड़े केसों पर टाइम‑आउट वाला सबमिशन भी हर छोटे और मध्यम केस को पास करने पर अंक इकट्ठा करता रहता है।

आखिरी दस मिनट

नया कोड लिखना बंद करें। प्रत्येक टास्क को एक बार खाली इनपुट के साथ, एक बार एकल तत्व के साथ, और एक बार प्रतिबंधों द्वारा अनुमति दी गई सबसे बड़ी वैल्यू के साथ चलाएँ। यह पास हार्ड टास्क पर चौथे प्रयास से अधिक अंक प्राप्त करता है, और इसमें तीन मिनट लगते हैं।

एक और बात जो बाद में पता लगाने से बेहतर है: प्लेटफ़ॉर्म टैब में होने वाली सभी घटनाओं को रिकॉर्ड करता है, जिसमें फोकस बदलना और पेस्ट किए गए ब्लॉक्स शामिल हैं, और नियोक्ता आपका स्कोर के बगल में वह सारांश देखता है। अपना टेस्ट इस तरह प्लान करें कि आप उसे बैठकर समाप्त करें, न कि अन्य विंडोज़ से जोड़‑तोड़ करके।

FAQ

क्या कार्य में दिए गए उदाहरण मेरे Codility स्कोर में गिने जाते हैं?

नहीं। विवरण में दिए गए उदाहरण केवल चित्रण हैं। आपका स्कोर उन छिपे हुए परीक्षण मामलों का प्रतिशत है जिन्हें आपका समाधान पास करता है, इसलिए भले ही आपका समाधान सभी प्रिंटेड उदाहरणों को संभाल ले, फिर भी स्कोर कम हो सकता है।

एक पासिंग Codility स्कोर क्या होता है?

कोई सार्वभौमिक पास मार्क नहीं है — इसे नियोक्ता निर्धारित करता है। व्यवहार में अधिकांश कंपनियां कार्यों के कुल प्रतिशत और यह देखती हैं कि प्रदर्शन स्कोर यह दर्शाते हैं कि आपने इच्छित जटिलता को समझा है या नहीं।

क्या मैं पहले के कार्य पर वापस जा सकता हूँ?

अधिकांश Codility टेस्ट सेटिंग्स में हाँ, पूरे टेस्ट में एक ही टाइमर चलता है और आप समय समाप्त होने तक कार्यों के बीच स्विच कर सकते हैं। यही कारण है कि शुरुआती ब्रूट‑फ़ोर्स को पहले जमा करके बाद में उसे ऑप्टिमाइज़ करना बहुत प्रभावी रहता है।

क्या Codility टैब स्विच करने या पेस्ट किए गए कोड का पता लगाता है?

प्लेटफ़ॉर्म फोकस बदलने और बड़े पेस्ट को लॉग करता है और उन्हें स्कोर के साथ नियोक्ता को रिपोर्ट करता है। यह आपको स्वचालित रूप से फेल नहीं करता, लेकिन रिपोर्ट पढ़ने वाला यह सारांश देख सकता है।

यहाँ ऐप कैसे मदद करता है

आगे पढ़ें