स्टैक-एक्सचेंज फॉर्म में मेरा प्रतिनिधि है?


16

परिसर:

आपकी प्रतिष्ठा स्टैक-एक्सचेंज फॉर्म में है यदि यह आपके बेस -10 अंकों में अपने पदक की गिनती (सोना, चांदी और कांस्य को अलग से गिना जाता है) को घटाकर और कुछ दिए गए क्रम में उन्हें किसी भी क्रम में शामिल करके दर्शाया जा सकता है।

विघटित करते समय, प्रत्येक

  • स्वर्ण पदक अंक तीन अंकों का होता है।
  • चांदी दो अंकों के बराबर है।
  • कांस्य एक अंक है।
  • इसके अतिरिक्त, चूंकि एसई एक पदक प्रकार प्रदर्शित नहीं करता है यदि आपके पास कोई भी नहीं है, तो एक प्रकार के लिए 0 पदक की गणना से उपज नहीं होगी [0]

उदाहरण:

  • [1 Gold, 2 Silvers, 3 Bronzes]में विघटित हो जाएगा [1,1,1,2,2,3]। 321112 और 213121 इन पदकों के लिए एसई-फॉर्म संख्या के दो उदाहरण हैं।
  • [20 Golds, 0 Silvers, 20 Bronzes]में विघटित हो जाएगा [2,2,2,0,0,0,2,0]। 20002022 एक एसई-फॉर्म नंबर है।
  • [11 Golds, 0 Silvers, 0 Bronzes]में विघटित हो जाएगा [1,1,1,1,1,1]। इसके लिए 111111 एकमात्र एसई-फॉर्म नंबर है।

एसई नंबर पर विचार करने पर कोई 0 नहीं होगा। उदाहरण के लिए, ऊपर दिए गए दूसरे उदाहरण में, के लिए SE- 00002222 -> 2222फ़ॉर्म संख्या नहीं मानी जाएगी [20,0,20]

इनपुट आउटपुट:

इनपुट एक सूची है / टपल / सरणी / जो कुछ भी [reputation, gold_medals, silver_medals, bronze_medals]सभी गैर-नकारात्मक पूर्णांक हैं। यह मान लिया गया आदेश है लेकिन इसे बदला जा सकता है। यदि आप करते हैं तो बस अपने उत्तर में एक नोट बनाएं।

आउटपुट सत्य और असत्य के लिए कोई दो सुसंगत मूल्य हैं।

नियम:

  • इनपुट हमेशा मान्य होगा
  • आपके पास हमेशा कम से कम 1 प्रतिनिधि होगा
  • आपके पास कोई पदक नहीं हो सकता है, जो हमेशा झूठे लौटना चाहिए।
  • पदक मायने रखता है वास्तविकता पर कोई असर नहीं है। कई सौ स्वर्ण पदक और कोई कांस्य ठीक नहीं है।
  • यह इसलिए बाइट्स जीत में सबसे छोटा जवाब है।

परीक्षण के मामलों:

#[Rep, Gold, Silver, Bronze] -> Output
[4, 0, 0, 4]       -> True
[1447, 0, 4, 17]   -> True
[74414, 4, 0, 17]  -> True
[4444, 4, 0, 4]    -> True
[4455, 0, 54, 0]   -> True
[5355, 5, 0, 3]    -> True
[53535, 5, 3, 0]   -> True
[4444, 0, 0, 4444] -> True
[444, 4, 0, 0]     -> True
[1234, 0, 0, 1234] -> True
[1234, 0, 0, 4321] -> True

[4444, 1, 0, 1]      -> False
[5555, 5, 0, 55]     -> False
[1234, 1, 23, 4]     -> False
[1, 0, 0, 0]         -> False
[1001001, 0, 10, 10] -> False

तो चुनौती के संदर्भ में प्रतिष्ठा क्या करती है?
ऑरेंजचेयर

3
@OrangeCherries यंत्रवत्, कुछ भी नहीं। इसने चुनौती को प्रेरित किया क्योंकि लेखन के समय मेरे पास 1447 प्रतिनिधि और 4 सिल्वर, 17 कांस्य थे।
विस्कह

1
आदेश के अलावा इनपुट लचीला है? तो क्या मैं उदाहरण के लिए एक इनपुट-सूची [bronze, silver, gold]और एक अलग दूसरा इनपुट ले सकता हूं reputation?
केविन क्रूज़सेन

1
@KevinCruijssen हाँ यह ठीक है। केवल एक चीज जो मैं कहूंगा कि अस्वीकृत है, प्रत्येक नंबर को बनाने वाले वर्णों / अंकों की सूची की सूची के रूप में इनपुट ले रहा है।
विस्कह

क्या आउटपुट के लिए किसी भी सत्य / झूठे मूल्यों की अनुमति है या क्या इसे लगातार दो होना चाहिए?
निक केनेडी

जवाबों:


11

05AB1E , 16 14 13 11 10 बाइट्स

∞×0KJ‚€{íË

[bronze, silver, gold]पहले इनपुट के reputationरूप में , और दूसरे इनपुट के रूप में पदक इनपुट लेता है ।

-1 बाइट @ ग्रीम को धन्यवाद ।

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

           # Push an infinite positive list: [1,2,3,...]
 ×          # Repeat the values in the (implicit) input-list that many times as string
            # (since the input-list contains just 3 values, the rest of the infinite
            #  list is ignored)
  0K        # Remove all 0s (so all "0", "00" and "000")
    J       # Join the strings in the list together
           # Pair this string with the (implicit) second input
      €{í   # Sort the digits in both strings in descending order
         Ë  # And check if both are now equal
            # (after which the result is output implicitly as result)

1
3L-> -1 के लिए।
ग्रिम्मी

1
@ ग्रेमी कभी-कभी यह उपयोगी होता है कि सूचियों को सबसे छोटे से छोटा किया जाता है। :) धन्यवाद!
केविन क्रूज़सेन

यह utf-8 में 19 बाइट्स है, न कि 10 बाइट्स।
रेयान

@LieRyan आप सही हैं, यह वास्तव में UTF-8 में 19 बाइट्स हैं। 05AB1E (केवल उदाहरण के लिए जेली और चारकोल) एक कस्टम कोडपेज का उपयोग करता है , जहां प्रत्येक 256 वर्णों को यह पता चलता है कि प्रत्येक 1 बाइट में एन्कोडेड है। हेक्साडेसिमल में इस 10-बाइट संस्करण में बाइट्स हैं \x19\xd7\x30\x4b\x4a\x82\x80\x7b\xec\xcb: --osabieध्वज के साथ इन हेक्साडेसिमल बाइट्स को चलाना संभव होना चाहिए , लेकिन मुझे यकीन नहीं है कि 05AB1E अमृत संस्करण में ऐसा करने के लिए पूरी तरह से ईमानदार होना चाहिए (लेकिन मैं कुछ पूछूंगा दूसरों को सत्यापित करने और उत्तर के साथ आपके पास वापस आने के लिए)।
केविन क्रूज़सेन

@LieRyan 05AB1E (विरासत) पायथन संस्करण में इसे इस तरह किया जा सकता है (यह पाठ्यक्रम की एक और चुनौती के लिए एक अलग कार्यक्रम है), लेकिन यह आपको यह विचार देना चाहिए कि हेक्साडेसिमल बाइट्स कैसे चलाए जाते हैं।
केविन क्रूज़सेन

7

जावास्क्रिप्ट (ईएस 6),  92  74 बाइट्स

के रूप में इनपुट लेता है (['gold','silver','bronze'])('rep')। एक बूलियन मान लौटाता है।

b=>r=>[...b.map((n,i)=>n.repeat(+n&&3-i)).join``].sort()+''==[...r].sort()

इसे ऑनलाइन आज़माएं!


जावास्क्रिप्ट (ईएस 6), 74 बाइट्स

के रूप में इनपुट लेता है (gold, silver, bronze, 'rep')। एक बूलियन मान लौटाता है।

(g,s,b,r)=>(F=s=>[...s].sort()+0)(r)==F([g,g,g,s,s,b].filter(x=>x).join``)

इसे ऑनलाइन आज़माएं!


7

MATL , 28 बाइट्स 20 बाइट्स 16 बाइट्स 13 बाइट्स

झूठे के लिए 0 और सच्चे के लिए 1 रिटर्न देता है। यह निश्चित रूप से नीचे गोल्फ हो सकता है।

[1,3,2,1]Y"t2:7)XzVXzY@Ums0>

नीचे 16 बाइट्स अगर प्रतिष्ठा स्कोर अलग से लिया जा सकता है, और आदेश है [कांस्य, चांदी, सोना], प्रतिष्ठा
लुइस मेंडो के लिए 13 बाइट्स के लिए नीचे

3:Y"XzVXzY@Um

इसे ऑनलाइन आज़माएं!




5

जाप , 14 13 12 बाइट्स

íp fn ¬á øUg

के रूप में इनपुट लेता है [rep, bronze, silver, gold]

इसे आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

Sample input: U = [1447, 17, 4, 0]
íp            Repeats each value of U by it's index amount e.g. ["","17","44","000"]
  fn          Remove all falsy values when converted to a number e.g. ["17","44"]
    ¬         Concatenate e.g. "1744"
     á        All permutations e.g. ["1744","1744","1474","1447","1474","1447","7144","7144","7414","7441","7414","7441","4174","4147","4714","4741","4417","4471","4174","4147","4714","4741","4417","4471"]
      øUg     Does it contain the first item of the input? 

मैं इस पर कुछ अलग अलग कोणों से कुछ stabs लिया है, लेकिन 13 से बेहतर नहीं कर सकता।
शैगी

@ शागि बारी Åबेकार थी, क्योंकि fnपहले मूल्य से छुटकारा मिल जाता था । हटाने Åसे यह 12 बाइट्स बनाता है
अज्ञानता का अवतार

यह utf-8 में 16 बाइट्स है, न कि 12 बाइट्स।
रेयान

@ लाइरेन कुछ गोल्फिंग भाषाएं अपने स्वयं के एन्कोडिंग का उपयोग करती हैं; Japt ISO-8859-1` का उपयोग करता है
अज्ञानता का अवतार

@EmbodimentofIgnorance, आह, Goddamnit, मैं उस जगह क्यों नहीं किया ?! मैं वास्तव में अभ्यास से बाहर महसूस करता हूं क्योंकि मैंने उस महीने को जाप के लिए अपनी खुली इनाम के लिए बंद कर दिया था।
शैगी

4

रेटिना 0.8.2 , 45 बाइट्स

,0
,
,(\d*),(\d*),
¶$1$1$1$2$2
%O`.
^(.+)¶\1$

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण सूट शामिल है। स्पष्टीकरण:

,0
,

शून्य अंक हटाएं।

,(\d*),(\d*),
¶$1$1$1$2$2

सोने और चांदी के स्कोर का विस्तार करें, और विभाजक को एक नई रेखा में परिवर्तित करें।

%O`.

प्रतिष्ठा और विस्तारित स्कोर को अलग-अलग क्रमबद्ध करें।

^(.+)¶\1$

क्रमबद्ध अंकों की तुलना करें।


4

जेली , 10 बाइट्स

xJ$¹ƇV,Ṣ€E

इसे ऑनलाइन आज़माएं!

तर्क 1: [Bronze, Silver, Gold]
तर्क 2:Rep


यह utf-8 में 16 बाइट्स है, 10 बाइट्स नहीं।
रेयान

1
@LieRyan जेली एक कस्टम कोड पेज का उपयोग करता है
आउटगोल्फर

4

रैकेट, 149 107 98 बाइट्स

(λ(r b s g[h(λ x(sort(string->list(apply ~a(remq*'(0)x)))char<?))])(equal?(h r)(h b s s g g g)))

इसे ऑनलाइन आज़माएं!

रैकेट में पहली बार गोल्फ, इसलिए अभी भी सुधार की तलाश में ...

स्पष्टीकरण (मूल लंबे संस्करण का, लेकिन समान विचार):

(λ(r b                              ; take rep and badges as arguments
     [g(λ(x)                        ; helper function g which takes a string
         (sort                      ; and returns the sorted
           (string->list x)         ; list of characters
           char<?))])               ; (sort by ascii code)
  (equal?                           ; compare...
    (g(~a r))                       ; g called on the rep converted to string
    (g                              ; and g called on...
      (string-join                  ; the concatenation of
        (map ~a                     ; the stringified elements of
             (append*               ; the flattened list given by
               (filter              ; the elements of the following list where
                 (λ(x)(>(car x)0))  ; the badge count is nonzero:
                 (map make-list     ; repeat the badge counts
                      '(1 2 3)b)))) ; 1, 2, and 3 times respectively
        ""))))

2

चारकोल , 24 बाइट्स

1F⁴F↨NχFι⊞υκFχ¿⁻№υι№θIι⎚

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। यदि ऑर्डर 1वैध है , तो ऑर्डर प्रतिनिधि, कांस्य, चांदी, सोना और आउटपुट में इनपुट लेता है। स्पष्टीकरण:

1

मान लें कि प्रतिनिधि मान्य है।

F⁴F↨NχFι⊞υκ

चार इनपुट वैल्यू पर लूप करें। प्रत्येक मूल्य iसमय के प्रत्येक अंक को धक्का दें जहां मूल्य iका 0-अनुक्रमित सूचकांक है। न्यूमेरिक बेस रूपांतरण का उपयोग यहां पर उस रूपांतरित रूप में किया जाता है0 एक खाली सरणी में होता है।

Fχ¿⁻№υι№θIι⎚

सरणी में प्रत्येक अंक की गिनती की जाँच करें जो पहले इनपुट में है। यदि कोई भिन्न है, तो कैनवास को साफ़ करें।


यह utf-8 में 60 बाइट्स है, न कि 24 बाइट्स।
रेयान

@ लियान ने नहीं कहा कि वे यूटीएफ -8 बाइट्स थे।
नील

2

जेली , 18 बाइट्स

DẋṠƊ€ẋ"3RU¤FṢ⁼⁴DṢ¤

इसे ऑनलाइन आज़माएं!

यह थोड़ा बुरा है


यह utf-8 में 37 बाइट्स है, न कि 18 बाइट्स।
रेयान

@ लिरियन जेली (और कई अन्य गोल्फिंग भाषाएं) अपने स्वयं के कोड पृष्ठ का उपयोग करती हैं जैसे कि सभी 256 1-बाइट कोड भाषा द्वारा उपयोग किए गए पात्रों में से एक के अनुरूप होते हैं।
हाइपरनेत्रिनो


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.