समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है।
निम्नलिखित स्थिति पर विचार करें:
एक दुकानदार एक वस्तु बेचता है जिसकी कीमत ठीक ₹5 है। कुछ ग्राहक एक कतार में खड़े हैं और प्रत्येक इस वस्तु की ठीक एक इकाई खरीदेगा। ग्राहक दुकानदार को ₹5, ₹10 या ₹20 का नोट दे सकते हैं। यह मानते हुए कि दुकानदार के पास शुरुआत में कोई पैसा नहीं है और सरणी कतार में खड़े ग्राहकों द्वारा दिए गए नोटों को दर्शाती है।
हमारे फ़ंक्शन को यह निर्धारित करना चाहिए कि दुकानदार सभी ग्राहकों को सटीक बदलाव दे सकता है या नहीं।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr = [5, 5, 10, 10, 20];
आउटपुट
const output = false;
आउटपुट व्याख्या
क्योंकि दो 5 के नोटों का उपयोग दो 10 के नोटों के लिए बदलाव देने के लिए किया जाएगा और उसके बाद 20 के नोट के लिए बदलाव उत्पन्न नहीं किया जा सकता।
उदाहरण
const arr = [5, 5, 10, 10, 20];
const provideChanges = (arr = []) => {
let fives = 0;
let tens = 0;
for (let i = 0; i < arr.length; i++) {
switch (arr[i]) {
case 5:
fives += 1;
break;
case 10:
if (fives <= 0) {
return false;
}
fives -= 1;
tens += 1;
break;
default:
if (tens >= 1 && fives >= 1) {
tens -= 1;
fives -= 1;
} else if (fives >= 3) {
fives -= 3;
} else {
return false;
}
break;
}
}
return true;
};
console.log(provideChanges(arr));
आउटपुट
false