আমি কি বসতে পারি?


23

ইন Catan এর ঔপনিবেশিকরা ইটের, লগ, আকরিক, গম এবং ভেড়া: বোর্ড খেলা, সেখানে পাঁচটি রিসোর্স ধরনের হয়। বন্দোবস্ত তৈরির জন্য একটি ব্রিক, একটি লগ, একটি গম এবং একটি ভেড়া খরচ হয়। তবে আপনি ভিন্ন ধরণের সংস্থান পেতে চারটি অভিন্ন সংস্থানেও বাণিজ্য করতে পারেন। উদাহরণস্বরূপ, যদি আপনার হাতে চারটি আকরিক থাকে তবে আপনি সেগুলির মধ্যে সমস্ত ব্যবসায় করতে এবং একটি ভেড়া পেতে পারেন।

আপনার কাজটি হ'ল আমার হাত দিয়ে আমি কোনও বন্দোবস্ত তৈরি করতে পারি কিনা তা নির্ধারণ করা।

তোমার কাজ

অক্ষরগুলোর একটা ক্রম হতে হবে B, L, O, W, এবং S, কোন যুক্তিসঙ্গত বিন্যাসে নেওয়া। এই চিঠিগুলি উপরে বর্ণিত পাঁচটি সংস্থার ধরণের অনুরূপ। এক ধরণের চারটি ব্যবসায়ের সম্ভাবনা বিবেচনায় রেখে মীমাংসা করার জন্য আমার প্রয়োজনীয় সংস্থান আছে কি না তা আপনার আউটপুট করা উচিত।

এটি , তাই বাইট জেতে সংক্ষিপ্ততম কোড।

নোট

  • আমার কোন ব্যবসায় সম্পাদন করতে হবে বা আমি কতগুলি বসতি গড়ে তুলতে পারি তা আউটপুট করার দরকার নেই। একটি সাধারণ "হ্যাঁ" বা "না" করবে।
  • আপনি ধরে নিতে পারেন না যে ইনপুটটি কোনও নির্দিষ্ট ক্রমে রয়েছে। বিশেষত, আপনি ধরে নিতে পারবেন না যে একই ধরণের সংস্থানগুলি একসাথে গোষ্ঠীযুক্ত, সুতরাং OBLSOএটি একটি বৈধ ইনপুট।
  • এটি , সুতরাং আপনি যে দুটি মান "হ্যাঁ" এবং "না" বলতে চাইছেন তা ব্যবহার করতে পারেন, যতক্ষণ না দুটি নির্বাচিত মান পৃথক এবং সামঞ্জস্যপূর্ণ হয়।
  • আমাদের এখানে কেবলমাত্র নিয়মগুলির সাথে সম্পর্কিত যা উপরের তালিকাভুক্ত রয়েছে। অন্যান্য খেলোয়াড়দের সাথে বা আশ্রয়কেন্দ্রে ব্যবসায়ের মতো কাতান নিয়মের আরও জটিল সেটেলার এখানে প্রাসঙ্গিক নয়।
  • ইনপুট অক্ষর ( B, L, O, W, S) অন্য মান, তাই যতদিন পাঁচটি স্বতন্ত্র ইনপুট হয় প্রতিস্থাপিত যাবে যখন এটি আপনার পছন্দের বিশেষ ভাষার জন্য সহজ। আপনি যদি অন্য ইনপুট মান ব্যবহার করেন তবে দয়া করে আপনার উত্তরে সেগুলি নির্দিষ্ট করুন।

উদাহরণ

BLWS -> Yes
OOOOWLB -> Yes (trade four O for a S)
OOW -> No
BBBO -> No
(empty input) -> No
BBBBLW -> No
BBBBBLW -> Yes (trade four B for a S)
OOOOOOOOOOOOOOOO -> Yes (sixteen O; trade for B, L, W, S)
BLBLBLBLBL -> Yes (trade L for W and B for S)
BLSWBLSWBLSW -> Yes (extra, unused resources are ignored)

13
"বন্দোবস্ত তৈরির জন্য একটি ব্রিক, একটি লগ, একটি গম এবং একটি ভেড়া খরচ হয়"। হ্যাঁ, বন্দোবস্ত তৈরির অনুষ্ঠান সম্পাদনের জন্য আপনার একটি ভেড়া দরকার need ভাবছেন কেন কোনও নিরামিষাশী নেই?
Okx

5
@ অক্স, মেষগুলি দুধ দেয় যা গম থেকে রুটি নিয়ে যায় যখন তারা নির্মাণের সময় তাদের খাবার দেয় (তারা মেষকে পেমেন্ট হিসাবে শেষে নিয়ে যায়)। বন্দোবস্তের বিল্ডিংয়ে কোনও প্রাণীর ক্ষতি হয়নি
আগুনজু

প্রোগ্রামটির জন্য কি ইনপুটটি বাছাই করা দরকার?
নিডজেজেকোব

@ নিডজেজেকোব নং, একটি আদেশের প্রয়োজন বিশেষভাবে অনুমোদিত নয়। আপনার প্রোগ্রামটি পাঁচটি সংস্থার যে কোনও ক্রম পরিচালনা করতে প্রস্তুত থাকতে হবে।
সিলভিও মায়োলো

@ সিলভিওমায়োলো দুঃখিত, আমি জানি না আমি কীভাবে এটি মিস করেছি
নিডজেজেকোব

উত্তর:


16

পাইথন 2 , 54 বাইট

lambda s:sum((s+"BLSW"*3).count(n)/4for n in"BLSWO")>3

এটি অনলাইন চেষ্টা করুন!

আমাদের প্রতিটি সংস্থার জন্য, আমরা সেই সংস্থানটির এন থাকা দ্বারা প্রদত্ত "স্বাধীনতা" সংখ্যা গণনা করি । একটি স্বাধীনতা আমাদের স্থাপনার জন্য ইট-লগ-গম-ভেড়া স্লটগুলির একটি পূরণ করার সুযোগকে উপস্থাপন করে , আমরা আমাদের সংস্থানগুলিকে রূপান্তর করতে পারি এই জন্য অ্যাকাউন্টিং।

BLSW সব জন্য, জমিদারি এক রিসোর্সের আমাদের এক ধরনের স্বাধীনতা দেয়, এবং 4 এর প্রত্যেক অতিরিক্ত বাড়তি আমাদের অন্য দেয়। স্বাধীনতা গণনার নিয়মটি এরকম:

* Having 1 brick/log/wheat/sheep gives 1 freedom.
* Having 5 bricks/logs/wheat/sheep gives 2 freedoms.
* Having 9 bricks/logs/wheat/sheep gives 3 freedoms.
* 

সুতরাং এন ইট / লগ / গম / ভেড়া ⌊ (n + 3) / 4⌋ স্বাধীনতা দেয়।

আকরিকগুলির জন্য, কেবল অতিরিক্ত চতুষ্পদ গণনা। স্বাধীনতা গণনার নিয়মটি এরকম:

* Having 4 ores gives 1 freedom.
* Having 8 ores gives 2 freedoms.
* Having 12 ores gives 3 freedoms.
* 

সুতরাং এন oresগুলি / n / 4⌋ স্বাধীনতা দেয়।

উপপাদ্য: আমরা যদি such 4 যেমন "স্বাধীনতা" পাই তবেই আমরা নিষ্পত্তি করতে পারি।

সুতরাং আমরা আমাদের স্বাধীনতা গণনা করি এবং সেগুলির মধ্যে ≥ 4 আছে কিনা তা পরীক্ষা করে দেখি। Countingn / 4⌋ তবে অন্যান্য সংস্থানগুলিকে counting (n + 3) / 4⌋ হিসাবে গণনা করাকে হ্যান্ডেল করতে আমরা কৃত্রিমভাবে অন্যান্য সংস্থাগুলির জন্য 3 দ্বারা সংখ্যা গণনা করি এবং তারপরে সমস্তটির জন্য ⌊n / 4⌋ গণনা করি। আমরা (s+"BLSW"*3).countপরিবর্তে ম্যাপিংয়ের মাধ্যমে এটি করি s.count

প্রুফ :

  • ধরুন আমরা নিষ্পত্তি করতে পারি। তারপরে [বি, এল, এস, ডাব্লু] এর প্রত্যেকটির জন্য আমরা (ক) ইতিমধ্যে আমাদের যে সম্পদটি ব্যবহার করেছি তার 1 ব্যবহার করেছি, বা (খ) এটি তৈরির জন্য অন্য কিছু সংস্থার 4 টি উত্সর্গ করেছে (আকরিকগুলি সহ)। উভয় ক্ষেত্রেই, আমরা উপরের বিধি দ্বারা কমপক্ষে 1 টি স্বাধীনতা গণনা করি। সুতরাং আমরা ≥ 4 স্বাধীনতা আছে।

  • ধরুন আমরা 4 স্বাধীনতা, কে যার "বাহুল্যও" করার কারণে আছে (ores থেকে যে স্বাধীনতা একটি বাড়তি, এবং অন্যান্য সম্পদ থেকে যে স্বাধীনতা অতীত এবং 4-K প্রথম এক হয়) যা অন্তত এক স্বত্ব সাক্ষী হয় ইট / লগ / গম / ভেড়া (যেটি "প্রথম স্বাধীনতা দিয়েছে")। তারপরে আমরা ইট / লগ / গম / ভেড়া দিয়ে 4 − কে স্লট পূরণ করি যা আমাদের প্রথম স্বাধীনতা দিয়েছে এবং আমাদের বাড়াতে রূপান্তরিত করে অবশিষ্ট কে স্লটগুলি পূরণ করে। সমস্ত 4 স্লট পূরণ করা হয় এবং আমরা নিষ্পত্তি করতে পারি। আমাদের 4 টিরও বেশি স্বাধীনতা থাকলে আমরা অবশ্যই এটি করতে পারি ।

এই প্রমাণ চুষে, কিন্তু আমি নিদ্রাপূর্ণ। আমি নিশ্চিত যে এর থেকে আরও ভাল ব্যাখ্যা আছে।


2
তাই বলে sহয় OOOOBLW, আপনি পেয়ে শেষ পর্যন্ত sum(n/4for n in map(("OOOOBLWBBBLLLSSSWWW").count,"BLSWO"))>3... তাই প্রত্যেকের জন্য BLOWSআপনি গণনা কতবার এটা যে স্টার্টার স্ট্রিং দেখা "BLWS"*3, তারপর এটি যোগ করা।
পিওরফেরেট

2
অবিকল! (স্ট্রিংটি "OOOOBLWBLSWBLSWBLSW"আসলে, তবে গণনাগুলি অবশ্যই একই রকম))
লিন

পাইথনের মানচিত্রটি 'পিছনের দিকে' থাকা আমাকে সর্বদা বিভ্রান্ত করে!
পিওরফেরেট

in"BLSWO"পাইথনের মধ্যে স্থান অপ্রয়োজনীয়, তাই না? কমপক্ষে
টিআইওতে

8

পাইথন 2 ,  52  51 বাইট

-1 থেকে বাইট ধন্যবাদ লুক (প্রতিস্থাপন >=0সঙ্গে <0, inverting False/ Trueফলাফল)

lambda h:sum(~-(h+"O").count(c)/4for c in"BOWLS")<0

বি , , ডাব্লু , এল , এবং এস অক্ষরগুলির একটি স্ট্রিং গ্রহণ করে এমন একটি নামহীন ফাংশন (যেমন ওপি হিসাবে রয়েছে) এবং Falseআপনি যদি স্থির করতে পারেন বা Trueনা করতে পারেন তবে ফিরে আসছেন ।

এটি অনলাইন চেষ্টা করুন! (ওপিতে আউটপুটটি জোর করেyes/no)।

কিভাবে?

এটি আমার জেলি উত্তর একটি বন্দর। আমাদের প্রত্যেকটির একটির ব্যবহারের পরে অবশিষ্ট থেকে যে কোনও বি , ডাব্লু , এল , এস বা এসের জন্য নিখোঁজ হওয়া দরকার । এর ফলে আমরা আমাদের হাতে অতিরিক্ত ও যুক্ত করতে পারি, তারপরে সমস্ত সংখ্যা এক করে কমিয়ে আনে, তারপরে পূর্ণসংখ্যা সমস্ত গুণকে চার দ্বারা ভাগ করে তার পরে যোগফল - ফলাফল শূন্য বা তার বেশি হলে আমরা নিষ্পত্তি করতে পারি (হয় না কারণ সেখানে প্রয়োজনীয় সংস্থান নেই) বা কারণ আমরা নিখোঁজ হওয়া (গুলি) অর্জনের জন্য বাণিজ্য করতে পারি।

lambda h:sum(~-(h+"O").count(c)/4for c in"BOWLS")<0
lambda h:                                           - a function that takes h (a string)
                                 for c in"BOWLS"    - for each letter, c, in "BOWLS":
                h+"O"                               -   append "O" to h
               (     ).count(c)                     -   count c instances
              -                                     -   negate
             ~                                      -   bitwise not (this is -x-1)
                               /4                   -   integer divide by 4
                                                    -    (NB: -1 and 0 are not affected)
         sum(                                   )   - sum the five values
                                                 <0 - less than zero? (inverted result)

কিভাবে ব্যবহার সম্পর্কে Falseজন্য 'yes'এবং Trueজন্য 'no'? তারপর আপনি পরিবর্তন হতে পারে >=জন্য <, 1 বাইট সংরক্ষণ।
লুক 21

আমি আপনার পছন্দের প্রশ্নের উত্স ক্রম পছন্দ!
নীল

7

পাইথ , 14 বাইট

gsm/t/+Q4d4U5Z

এখানে চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন।

পাইথ ,  31 27 17  16 বাইট

<3s/R4/L+Q*3U4U5

পরীক্ষার কেসগুলি যাচাই করুন।

কিভাবে এই কাজ?

ব্যাখ্যা # 1

gsm/t/+Q4d4U5Z   - Full program.

  m        U5    - Map over the range [0, 5) with a variable d.
      +Q4        - The input, with a 4 appended (this corresponds to O)
     /   d       - Count the occurrences of the current value in ^.
    t            - Decrement.
   /      4      - Integer division by 4.
 s               - Sum
g            Z   - Is non-negative (is the sum ≥ 0)?  
                 - Output implicitly.

ব্যাখ্যা # 2

<3s/R4/L+Q*3U4U5   - Full program.

          *3U4     - The range [0, 4) repeated 3 times.
        +Q         - The input with ^ appended.
      /L      U5   - Count the occurrences of each element in [0, 5) in ^.
   /R4             - Integer division of each by 4.
  s                - Sum.
<3                 - Is higher than 3?
                   - Output implicitly.

এগুলি আমার প্রোগ্রাম দ্বারা ব্যবহৃত কোডগুলি:

B -> 0
L -> 1
S -> 2
W -> 3
O -> 4


ওহ, ঠিক আছে।
এরিক আউটগল্ফার

আমি বিশ্বাস করি //Q4 4হতে পারে /Q16তবে আমি সত্যিই নিশ্চিত নই ...
এরিক দ্য আউটগল্ফার

@ এরিকথিউটগলফার এটি অবৈধ ছিল ... BBBOউদাহরণস্বরূপ
মিঃ এক্সকোডার

@EriktheOutgolfer না, এটা occurences গণনা এর 4দ্বারা এবং ডিভাইড 4
মিঃ এক্সকডার

6

জেলি ,  13  12 বাইট

;5ċЀ5’:4S>-

আপনার মালিকানাধীন সংস্থাগুলির প্রতিনিধিত্ব করে এবং 1যদি আপনি স্থির হতে পারেন বা 0না করতে পারেন তবে ফিরে আসছেন এমন সংখ্যার একটি তালিকা গ্রহণ করে একটি মোনাডিক লিঙ্ক ।

সংস্থানগুলি 1, 2, 3, 4, 5যেখানে ওরে5 প্রতিনিধিত্ব করে ।

এটি অনলাইন চেষ্টা করুন! অথবা পরীক্ষা-স্যুট (ওপেন আইও ব্যবহার করে) দেখুন।

কিভাবে?

ধারণাটি হ'ল প্রথমে সংস্থানগুলি টাইপ অনুসারে গণনা করা হবে, তারপরে বি , এল , ডাব্লু এবং এস এর সমস্ত সংখ্যা এক সাথে কমাতে হবে - যদি আমরা এই চারটির কোনওটির জন্য কোনও গণনা করি না তবে তাদের এখন এর -1 প্রবেশিকা থাকবে - আমাদের অর্জন করা দরকার আমাদের অবশিষ্ট সংস্থানগুলি থেকে এগুলি (এটি আসলে অতিরিক্ত ( 5) যোগ করে এবং পাঁচটি সংখ্যা 1 দ্বারা হ্রাস করে অর্জন করা হয় )। এরপরে আমরা এই সমস্ত মানকে চারটি দিয়ে ভাগ করে দেখব যে -1 এবং 0 গুনগুলিকে প্রভাবিত না করে আমরা কীভাবে আমাদের অবশিষ্ট গণনের সাথে রিসোর্সের ধরণ অনুসারে বাণিজ্য করতে পারি তার জন্য কতগুলি ইউনিট বাণিজ্য করতে পারে (দ্রষ্টব্য যে -1 সংখ্যাকে চারটি দ্বারা বিভক্ত করা হয়েছে-1 , 0 নয় )। শেষ পর্যন্ত আমরা মানগুলি সংযোজন করি এবং ফলাফলটি শূন্যের চেয়ে বড় বা সমান কিনা তা পরীক্ষা করে দেখি (এখানে -1 এর চেয়ে বেশি ব্যবহার করা যায় কারণ আমাদের সবসময় পূর্ণসংখ্যা থাকে)।

;5ċЀ5’:4S>- - Link: list of numbers (BLWSO:12345) e.g. [3,2,2,2,2,2,5,5,5,5] (WLLLLLOOOO)
;5           - concatenate a five                       [3,2,2,2,2,2,5,5,5,5,5]
     5       - literal 5
   Ѐ        - map across implicit range(5) = [1,2,3,4,5]:
  ċ          -   count                                  [ 0, 5, 1, 0, 5]
      ’      - decrement (vectorises)                   [-1, 4, 0,-1, 4]
       :4    - integer divide by four                   [-1, 1, 0,-1, 1]
         S   - sum                                      0
           - - literal -1                              -1
          >  - greater than?                            1

5

জাভা 8, 101 বাইট

থেকে ল্যামডা int[]করতে boolean। এতে হস্তান্তর Function<int[], Boolean>

a->{int h,f[]=new int[5],i=0;for(int x:a)f[x]++;for(h=f[4]/4;i<4;)h+=--f[i]>>-1|f[i++]/4;return~h<0;}

এটি অনলাইন চেষ্টা করুন

ইনপুট এবং আউটপুট

ইনপুটটি 0 থেকে 4 এর মধ্যে পূর্ণসংখ্যার অ্যারে। 4 ওরে প্রতিনিধিত্ব করে, এবং অন্যান্য ম্যাপিং অবিচ্ছিন্ন। আমার পরীক্ষার কেসগুলি হ'ল প্রশ্নের মধ্যে সরাসরি অনুবাদ, যেমন ব্রিক হিসাবে 0, লগ হিসাবে 1, গম হিসাবে 2 এবং ভেড়া হিসাবে 3 with

কোনও নিষ্পত্তি নির্মাণ করা যায় কিনা তা আউটপুট।

Ungolfed

a -> {
    int
        h,
        f[] = new int[5],
        i = 0
    ;
    for (int x : a)
        f[x]++;
    for (h = f[4] / 4; i < 4; )
        h += --f[i] >> 31 | f[i++] / 4;
    return ~h < 0;
}

ব্যাখ্যা

hব্যবসায়ের জন্য উপলব্ধ সংস্থান চতুর্থাংশের সংখ্যা। আমরা প্রতিটি রিসোর্সের ধরণের (ওরে ব্যতীত) পুনরুক্তি hকরি, আমাদের যে অতিরিক্ত সংস্থান আছে তার প্রতিটি চতুর্থাংশের জন্য বৃদ্ধি এবং যেখানে সংস্থান নেই সেখানে হ্রাস। তারপরে আমাদের ফলাফলটি hননজেগটিভ কিনা ।

লাইন

h += --f[i] >> 31 | f[i++] / 4;

hকোনও সংস্থান (অভাব) বা কমপক্ষে একটি সংস্থান (উদ্বৃত্ত) আছে তা নির্বিশেষে যথাযথভাবে সামঞ্জস্য করে । f[i]উদ্বৃত্ত ক্ষেত্রে প্রয়োজনীয় সংস্থান হিসাবে অ্যাকাউন্টে হ্রাস করা হয়, অভাবের ক্ষেত্রে -1 উত্পাদন করে। স্বাক্ষর করা ডান শিফটটি 0 (উদ্বৃত্ত কেস) বা -1 (সংকট কেস) এ অভিব্যক্তি হ্রাস করে, যাতে কিছুটা দিক বা f[i++] / 4উদ্বৃত্ত চতুর্ভুজের সংখ্যার (উদ্বৃত্ত ক্ষেত্রে) সংকট ক্ষেত্রে প্রভাবিত না করে সংখ্যায় ফলাফল দেয় উদ্বৃত্ত ক্ষেত্রে নিজেই।

প্রাপ্তি স্বীকার

  • -9 বাইটস বিভেদে মাস্টার নেভেয়কে ধন্যবাদ

-3 বাইট: ...for(h=f[4]/4;i<4;h+=f[i++]/4)n+=--f[i]>>-1;return~h<n;
নেভে

103 বাইট: a->{int h,f[]=new int[5],i=0;for(int x:a)f[x]++;for(h=f[4]/4;i<4;h+=f[i++]/4)h+=--f[i]>>-1;return~h<0;}
নেভায়ে

2
101 বাইট:a->{int h,f[]=new int[5],i=0;for(int x:a)f[x]++;for(h=f[4]/4;i<4;)h+=--f[i]>>-1|f[i++]/4;return~h<0;}
নেভায়ে

এখন কিছু রসালো বিট হ্যাকিং!
Jakob

4

রেটিনা , 34 বাইট

^
BBBLLLWWWSSS
O`.
((.)\2{3}.*){4}

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: একটি বন্দোবস্ত তৈরির জন্য 4 টি সংস্থান দরকার যা হয় হয় আপনার প্রথম বি, এল, ডাব্লু, বা এস, বা একই ধরণের অন্য 4 টি সংস্থান। এটি সেই চার ধরণের সংস্থার প্রত্যেকটির মধ্যে তিনটি যোগ করার সমতুল্য এবং তারপরে আপনার চারটি চারটি সেট রয়েছে কিনা তা দেখার জন্য গণনা করা হচ্ছে।




2

পাইথন 3 , 79 78 বাইট

সম্পাদনা করুন: -১ বাইট @ মিঃ এক্সকোডারকে ধন্যবাদ

lambda x:3<sum((a>0)+~-a*(a>1)//4for a in map(x.count,"BLSW"))+x.count("O")//4

এটি অনলাইন চেষ্টা করুন!


আপনি যদি পাইথন 2 এ স্যুইচ করতে ইচ্ছুক হন, আপনি এটি 77 বাইটে
মিস্টার এক্সকোডার


@জনাব. এক্সকোডার আপনি পাইথন 2 সমাধান কেন করেন না?
জাকব

@ জ্যাকব, কারণ এটি হলভার্ডের মতোই similar
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার এটিকে পাইথন 3
হালওয়ার্ড হুমেল

2

এমএটিএল , 19 বাইট

Oh!5:=s4&\w4:)ghs3>

ইনপুট একটি সংখ্যার সারি ভেক্টর যেখানে অক্ষরগুলি সংখ্যা হিসাবে প্রদর্শিত হয়:

B: 1
L: 2
W: 3
S: 4
O: 5

আউটপুট 1সত্যের জন্য,0 মিথ্যা জন্য।

অনলাইনে এটি ব্যবহার করে দেখুন !: সমস্ত পরীক্ষার কেস যাচাই করুন

কিভাবে এটা কাজ করে

  1. প্রতিটি উত্সের সংক্ষিপ্ত পরিমাণ গণনা করুন।
  2. 4 দ্বারা তাদের Div-Mod।
  3. প্রথম চারটি সংস্থান (অক্ষর BLWS) এর অবশিষ্ট কতগুলি ননজারো তা গণনা করুন । এটি একটি নম্বর দেয় ।
  4. ভাগফলের যোগফল। এই সংখ্যা দেয় গুলি
  5. সি + এস ≥ 4 কিনা আউটপুট ।

মন্তব্য করা কোড

Oh     % Append 0 to implicit input. This is just in case inpout is empty
!      % Convert into column vector
5:     % Push row vector [1 2 3 4 5]
=      % Compare for equality, element-wise with broadcast
s      % Sum of each column. Gives number of times that each entry of
       % [1 2 3 4 5] appears in the input
4&\    % Mod-div 4, element-wise. Pushes vector of remainders and then vector
       % of quotients of division by 4
w      % Swap. Brings remainders to top
4:)    % Get the first four entries
g      % Convert to logical. This transforms non-zero values into 1
h      % Concatenate with vector of quotients
s      % Sum
3>     % Does the result exceed 3? Implicitly display

2

> <> , 61 বাইট

510ap\~1(n;
1+$ap> i:0(?v8%:ag
0:ga:v?=5:+1<$-}$,4-%4:-}-${:)

এটি অনলাইন চেষ্টা করুন!

নিম্নলিখিত সংস্থান ম্যাপিং ব্যবহার:

O -> 0
B -> 1
L -> 2
W -> 3
S -> 4

এটা সত্যিই ব্যাপার কি ম্যাপিং ব্যবহার করা হয় না, যতদিন তারা সীমার মধ্যে আছেন 0-4, এবং 0হে বস্তুত ব্যবহার করে সমন্বয় খুঁজছেন তোলে জন্য ব্যবহার করা হয় BLWSসমন্বয় খুঁজছেন হিসাবে একই OBLWSসময় ইতিমধ্যে একটি থাকার Oমধ্যে হাত.


1

05AB1E 1 , 19 বাইট

0 -> আকরিক
1 -> ইট
2 -> লগ
3 -> গম
4 -> ভেড়া

মিথ্যা হলে 0 এবং অন্যথায় 1 প্রদান করে।

{γvyDĀi¼¨}g4÷}¾)O3›

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

{γvyDĀi¼¨}g4÷}¾)O3› Implicit input, e.g. 0030201
{                   Sort -> 0000123
 γ                  Split into chunks of consecutive elements: [0000, 1, 2, 3]
  vy                For each chunk...
    DĀ                 ...is different than 0?
      i¼¨}                ...if true: increment the counter by 1, and 
                              remove 1 element from the chunk
          g4÷         ...divide the number of elements by 4
             }      End For
              ¾     Push the counter
               )    Wrap the entire stack in a list
                O   Sum of that list
                 3> True if > 3
                    Implicit output

অ-প্রতিযোগিতামূলক সমাধান: 17 বাইট

আমি প্রথম সমাধানটি জমা দেওয়ার সময় 05 এবি 1 ই-তে একটি বাগ ছিল, যেখানে কিছু অপারেটর খালি ইনপুটগুলি খারাপভাবে পরিচালনা করেছিল। এটি এই সমাধানটির উত্তর দিয়েছিল1 খালি ইনপুটটিতে দেয়। এটি এখন ঠিক করা হয়েছে, সুতরাং এই সমাধানটি ঠিক কাজ করে।

এখানে পার্থক্যটি হ'ল আমরা প্রতিটি উত্সকে অপসারণের পূর্বে আকরিক যুক্ত করি, নির্বিচারে, সেইভাবে সরিয়ে নেওয়া সংস্থার সংখ্যা গণনা করি। এরপরে আমরা বি, এল, ডাব্লু এবং এস এর সঠিক নম্বর পেতে কাউন্টারটিকে 1 দ্বারা হ্রাস করে থাকি

0«{γε¨g4÷¼}O¾<+3›

এটি অনলাইন চেষ্টা করুন!


0

জাভাস্ক্রিপ্ট (স্পাইডারমনকি) , 116 বাইট

s=>Array.from("BLOWS").reduce((m,c)=>Math.floor(((s+"BLSW".repeat(3)).match(new RegExp(c,'g'))||"").length/4)+m,0)>3

এটি অনলাইন চেষ্টা করুন!

সুপার ক্লানকি খারাপ উত্তর। আমি নিশ্চিত এটি আরও পরিষ্কার করা যেতে পারে। এই থ্রেডে লিনের উত্তর থেকে অনুপ্রাণিত পদ্ধতি।


0

কোটলিন , 131 129 বাইট

নমন

fun r(i:String):Any=i.split("").groupingBy{it}.eachCount().map{when(it.key){
""->0
"O"->it.value/4
else->(it.value+3)/4}}.sum()>3

পরীক্ষা

fun r(i:String):Any=i.split("").groupingBy{it}.eachCount().map{when(it.key){
""->0
"O"->it.value/4
else->(it.value+3)/4}}.sum()>3

data class TestData(val input:String, val output:Boolean) {
    fun run() {
        val out = r(input)
        if (out != output) {
            throw AssertionError("Failed test: ${this} -> $out")
        }
    }
}
fun main(args: Array<String>) {
    listOf(

            TestData("BLWS", true),
            TestData("OOOOWLB", true),
            TestData("OOW", false),
            TestData("BBBO", false),
            TestData("", false),
            TestData("BBBBLW", false),
            TestData("BBBBBLW", true),
            TestData("OOOOOOOOOOOOOOOO", true),
            TestData("BLBLBLBLBL", true),
            TestData("BLSWBLSWBLSW", true)
    ).forEach(TestData::run)
    println("Test passed")
}

ট্রাইআইটঅনলাইনে কাজ করতে পারে না, তবে চেষ্টা.কোটলিনল্যাং.আরগে কাজ করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.