मेरे पास कुछ किताबें और एक बुकशेल्फ़ है। मैं यथासंभव अधिक से अधिक पुस्तकों को शेल्फ पर रखना चाहूंगा लेकिन मेरे पास एक नियम है। पुस्तकों के सभी आयाम (ऊंचाई, चौड़ाई और गहराई) को शेल्फ पर एक गैर-बढ़ते क्रम बनाना चाहिए।
इसका मतलब यह है कि प्रत्येक पुस्तकों को कम से कम उतना ही उच्च होना चाहिए जितना स्वयं के बाद। वही चौड़ाई और गहराई के लिए जाता है। आप उनकी ऊँचाई, चौड़ाई और गहराई को स्वैप करने के लिए किताबों को नहीं घुमा सकते।
आपको एक प्रोग्राम या फ़ंक्शन लिखना चाहिए जो इनपुट आउटपुट के रूप में सभी पुस्तकों के आयाम देता है या उन पुस्तकों की अधिकतम संख्या लौटाता है जिन्हें मैं शेल्फ पर रख सकता हूं।
इनपुट
- सकारात्मक पूर्णांकों के त्रिगुणों की एक सूची जहां प्रत्येक त्रिपाठी पुस्तक की ऊंचाई, चौड़ाई और गहराई को परिभाषित करता है।
- इनपुट सूची में कम से कम एक ट्रिपल होगा।
- किसी भी संख्या के आयामों के साथ दो पुस्तकों की लंबाई समान हो सकती है।
उत्पादन
- एक एकल सकारात्मक पूर्णांक, पुस्तकों की अधिकतम संख्या जो नियम का पालन करते हुए शेल्फ पर फिट होती है।
समय की जटिलता
आपके एल्गोरिथ्म में पुस्तकों की संख्या में सबसे खराब स्थिति वाला समय बहुपद होना चाहिए । इसका मतलब यह है कि उदाहरण के लिए निम्नलिखित समय जटिलताएँ सभी मान्य हैं: O (N ^ 3), O (लॉग (N) * N ^ 2), O (N) और निम्नलिखित निम्नलिखित अमान्य हैं: O (2 ^ N), ओ (एन!), ओ (एन ^ एन)।
उदाहरण
इनपुट => आउटपुट
(1, 1, 1) => 1
(5, 2, 5), (1, 3, 5) => 1
(5, 2, 5), (1, 2, 5) => 2
(2, 2, 2), (2, 2, 2), (2, 2, 2), (1, 3, 6) => 3
(1, 2, 5), (1, 3, 5), (1, 2, 8), (1, 2, 5), (7, 7, 7) => 4
(5, 19, 3), (9, 4, 16), (15, 16, 13), (7, 4, 16), (1, 13, 14), (20, 1, 15), (9, 8, 19), (4, 11, 1) => 3
(1, 1, 18), (1, 13, 7), (14, 1, 17), (8, 15, 16), (18, 8, 12), (8, 8, 15), (10, 1, 14), (18, 4, 6), (10, 4, 11), (17, 14, 17), (7, 10, 10), (19, 16, 17), (13, 19, 2), (16, 8, 13), (14, 6, 12), (18, 12, 3) => 5
यह कोड गोल्फ है इसलिए सबसे छोटी प्रविष्टि जीतती है।
एक संबंधित दिलचस्प पुस्तक छँटाई चुनौती: बुक स्टैक सॉर्ट ।