ट्रैक
/
Haskell
Haskell
/
अभ्यास
/
सैडल पॉइंट
सैडल पॉइंट

सैडल पॉइंट

मध्यम

परिचय

आप अपने घर के पास वाले जंगल में पेड़ पर एक घर बनाने की सोच रहे हैं, ताकि आप सूरज के उगने और डूबने को देख सकें।

आपने एक स्थानीय सर्वे कंपनी से ऐसा डेटा लिया है, जिसमें नक्शे के हर आयताकार हिस्से के हर पेड़ की ऊँचाई दर्ज है। आपको नक्शे के हर ग्रिड का विश्लेषण करना होगा, ताकि पता चले कि आपके पेड़ वाले घर के लिए कौन से पेड़ अच्छे हैं।

एक अच्छे पेड़ में ये दोनों बातें होती हैं:

  • वह पूर्व और पश्चिम के हर पेड़ से ऊँचा हो, ताकि आपको सूर्योदय और सूर्यास्त का सबसे अच्छा नज़ारा मिले।
  • वह उत्तर और दक्षिण के हर पेड़ से छोटा हो, ताकि आपको पेड़ पर कम से कम चढ़ना पड़े।

निर्देश

आपको वे संभावित पेड़ ढूँढने हैं जहाँ आप पेड़ पर अपना घर बना सकते हैं।

डेटा कंपनी यह डेटा ग्रिड के रूप में देती है, जिनमें पेड़ों की ऊँचाइयाँ दिखाई जाती हैं। ग्रिड की पंक्तियाँ पूर्व-पश्चिम दिशा दर्शाती हैं, और स्तंभ उत्तर-दक्षिण दिशा।

स्वीकार्य पेड़ वह होगा जो अपनी पंक्ति में सबसे बड़ा हो, और साथ ही अपने स्तंभ में सबसे छोटा हो।

हो सकता है कि किसी ग्रिड में एक भी अच्छा पेड़ न हो। या फिर उसमें एक हो, या कई भी।

यहाँ एक ऐसा ग्रिड है जिसमें ठीक एक संभावित पेड़ है।

    1  2  3  4
  |-----------
1 | 9  8  7  8
2 | 5  3  2  4  <--- potential tree house at row 2, column 1, for tree with height 5
3 | 6  6  7  1
  • पंक्ति 2 में वैल्यू 5, 3, 2 और 4 हैं। सबसे बड़ी वैल्यू 5 है।
  • स्तंभ 1 में वैल्यू 9, 5 और 6 हैं। सबसे छोटी वैल्यू 5 है।

तो [2, 1] वाला बिंदु (पंक्ति: 2, स्तंभ: 1) पेड़ पर घर बनाने के लिए बढ़िया जगह है।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Haskell Exercism

सैडल पॉइंट शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।