অ্যাডাকাডো সম্পর্কে চ্যালেঞ্জ


16

দ্বারা অনুপ্রাণিত এই । এই চ্যালেঞ্জটি তৈরিতে কোনও অ্যাভোকাডো ক্ষতিগ্রস্থ হয়নি।

হ্যালো আমার কাছে চ্যালেঞ্জ রয়েছে যে আমার কাছে অ্যাভোকাডোতে জুস সহায়তা দরকার তাই আমার কী প্রোগ্রামের প্রয়োজন তা বলার জন্য আমার কতটা প্রোগ্রামের দরকার

এই ASCII আর্ট অ্যাভোকাডো পর্যবেক্ষণ করুন:

    ###### 
   #      #
   # #### #
  #  # p# #
  ## #### #
   #      #
    ######

এই অ্যাভোকাডোতে #s এর একটি বাহ্যিক (বিশেষত #প্রতিটি লাইনে s এর প্রথম এবং শেষ ক্রম ) এবং একটি পিট ( #অ্যাভোকাডোতে s এর একটি আকার যা অ্যাভোকাডোর বাহিটি স্পর্শ করে না) নিয়ে গঠিত।

এই ASCII আর্ট অ্যাভোকাডোগুলিতে কঠোর পরীক্ষার মাধ্যমে আমি নিম্নলিখিতগুলি আবিষ্কার করেছি:

avocado juice in fluid ounces = number of spaces inside avocado but outside pit (the pit is marked with a p in the example) + 2 * number of spaces inside pit

time to juice avocado in minutes = 13 * number of spaces inside pit

উদাহরণস্বরূপ, এই অ্যাভোকাডো রস নিতে 26 (2 পিট * 2 স্পেসের ভিতরে 2 স্পেস) নেবে এবং 23 (অ্যাভোকাডোর ভিতরে 19 স্পেস কিন্তু পিটের ভিতরে 2 + 2 স্পেস) ফলের ওস দেবে।

চ্যালেঞ্জ

উপরের একটির মতো ঠিক একটি এএসসিআইআই আর্ট অ্যাভোকাডোর একটি ইনপুট দেওয়া যেমন কেবলমাত্র #এবং সাদা স্থান নিয়ে গঠিত , কয়েক মিনিটের মধ্যে আউটপুট এটি রস নিতে সময় নেয় এবং এটি যে পরিমাণে পরিমাণে রস উত্পন্ন করবে।

আপনি ধরে নিতে পারেন ইনপুট অ্যাভোকাডোতে সর্বদা ঠিক একটি পিট থাকবে এবং অ্যাভোকাডো এবং পিট উভয়ই সর্বদা বন্ধ থাকবে। পিট এবং অ্যাভোকাডো সর্বদা সংযুক্ত থাকবে এবং পিটের কোনও উপসেট পাশাপাশি সংযুক্ত থাকবে। অ্যাভোকাডো এবং পিট সর্বদা উত্তল থাকবে। দ্রষ্টব্য যে অ্যাভোকাডোর বাহ্যিক নির্বিচারে ঘন হতে পারে।

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

    ###### 
   #      #
   # #### #
  #  #  # # -> 26 23
  ## #### #
   #      #
    ######


   #######
  #       #
  #  ###   ##
  #  #  #   # -> 26 35
  #   ##   #
  #        #
  ##########

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



3
@ মেগো আমি আড্ডায় মানুষের সাথে কথা বলেছি এবং আমরা স্থির করেছি অ্যাভোকাডো পিটের কারণে এটি যথেষ্ট আলাদা ছিল।
একটি স্প্যাগেটো

3
আমি এখনও মনে করি এটি একটি ডুপ।
মেগো

1
@ ডিজিটালট্রামা ফিক্সড
একটি স্প্যাগেটো

1
বৈধ ইনপুটগুলির সেটটি কী তা এখনও বেশ স্পষ্ট বলে মনে হচ্ছে।
feersum

উত্তর:


6

পাইথ, 59 51 বাইট

*Ksm/.s.s.sd\ \#\ \ fq4l:T"#+"4.z13+-/s.sR\ .zdK*2K

এখানে চেষ্টা করুন!

প্রথমে অ্যাডাকাডো (সম্পূর্ণ সঠিক ইংরাজী) এবং পরবর্তী লাইনে জুসের পরিমাণ নির্ধারণের সময় আউটপুট দেয়।

ব্যাখ্যা

কোড - ওভারভিউ

* Ksm / .sssd \ \ # \ \ fq4l: T "# +" 4.z13 + - / s.sR \ .zdK * 2K # .z = সমস্ত ইনপুট লাইনের তালিকা

                    fq4l: T "# +" 4.z # পিট-লাইন পান
   মি / .এসএসডি \ \ # \ \ # শ্বেতক্ষেত্রের পরিমাণে পিট-লাইনগুলি মানচিত্র করুন
 কেএস # পিট-স্পেসের পরিমাণের যোগফল এবং কে কে নির্ধারিত করুন
* 13 # রসিক সময় মুদ্রণ করুন
                                     /s.sR \ .zd # অ্যাডক্যাডোতে সমস্ত সাদা স্থান গণনা করুন
                                    - কে # এটি থেকে পিটের আকারটি বিয়োগ করুন
                                   + * 2 কে # বাকি পরিমাণ ক্যালক্লুয়েশন করুন এবং এটি মুদ্রণ করুন


আকার গণনার অংশগুলির বিস্তারিত ব্যাখ্যা নীচে দেখুন।

অ্যাডক্যাডো আকার প্রাপ্তি

আসুন এটি দেখুন:

    ###### 
   # #
   # #### # #
  # # # #
  ## #### #
   # #
    ######

প্রথমে শীর্ষস্থানীয় এবং অনুসরণকারী শ্বেতস্থানগুলি সরানো হবে। এর পরে আমরা সমস্ত কিছু এক লাইনে আবদ্ধ করি, যার ফলস্বরূপ:

#######      ## #### ##  #  # ### #### ##      #######

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

এর জন্য কোডটি বিস্তারিতভাবে ব্যাখ্যা করেছে:

/s.sR \ .zd # .z = সমস্ত ইনপুট লাইনের তালিকা

  প্রতিটি ইনপুট লাইন থেকে .sR \ .z # স্ট্রিপ ফাঁকা স্থান
 s # সমস্ত লাইনকে সংঘবদ্ধ করুন
/ d # সমস্ত স্থান গণনা করুন

পিটের আকার পাচ্ছে

এটি কিছুটা কৌশলযুক্ত। প্রথমে আমরা লাইনগুলি সরিয়ে ফেলি যা গর্ত আকারে অবদান রাখে না। এটি 4 টিরও কম গ্রুপের হ্যাশগুলির (রেজেক্স ব্যবহার করে #+এবং এর ম্যাচগুলি গণনা করে) সমস্ত লাইনে ফিল্টার করে এটি করা হয় । উপরের উদাহরণে কেবলমাত্র একটি রেখা এই প্রক্রিয়াটি থেকে বাঁচবে:

  #  #--# #

আমি -এখানে যে জায়গাগুলির সাথে চিহ্নিত করেছি সেগুলি হ'ল আমাদের গণনা করা দরকার। সুতরাং আমরা কেবল ফাঁকা স্থানগুলি, তারপরে হ্যাশগুলি এবং তারপরে আবার ফাঁকা স্থান যা আমাদের সাথে এটি ছেড়ে দেয়:

#  #

সেখানে আমাদের কেবল খালি জায়গা গুনতে হবে। ফিল্টারিংয়ের প্রক্রিয়া থেকে বেঁচে থাকা প্রতিটি লাইনের জন্য আমরা সমস্ত কিছু করি, সমস্ত কিছুর যোগফল এবং আমাদের কাজ শেষ are বাকীটি তুচ্ছ গণিত।

এর জন্য কোডটি বিস্তারিতভাবে ব্যাখ্যা করেছে:

sm / .sssd \ \ # \ \ fq4l: T "# +" 4.z # .z = সমস্ত ইনপুট লাইনের তালিকা

                  চ .z # ইনপুট ফিল্টার করুন
                     l: টি "# +" 4 # ম্যাচগুলির দৈর্ঘ্য ge # + `
                   কিউ 4 # হ্যাশগুলির 4 টি গ্রুপ যদি তার পিট লাইন থাকে
 মি # এই গর্তের লাইনের মানচিত্র ...
  / \ # ফাঁকা জায়গাগুলি ..
   .sssd \ \ # \ # ... স্ট্রিপড পিট লাইন (উপরে ব্যাখ্যা দেখুন)
s # গর্তের সমস্ত পরিমাণের জায়গাগুলির যোগফল


5

রেটিনা , 70

  • 25 বাইট সংরক্ষিত হয়েছে @ ফ্রাইআমডেজিগম্যান এবং @ আরন্ডোমাকে ধন্যবাদ
T` `i` (? <= # + # +) * (? = # + + + #)
T` `f` # + #
আমি
13 $ * iff
((ঝ) | (চ) | \ ওয়াট) + +
$ # 2 $ # 3

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


1
ডান্নো যদি এটি সাহায্য করে তবে আমি 90 বাইট ব্যবহার করে পেয়েছি $*... এখনও সত্যিই গল্ফযোগ্য মনে হচ্ছে ...
FryAmTheEggman

2
@FryAmTheEggman ওহ আপনার সাথে লিটারেল ব্যবহার করতে পারেন $*_? ওটা সুন্দর. আমি 70 বাইট পেতে পরিচালিত ।
এলোমেলো

1
হ্যাঁ, এটি আসলে কোনও "টোকেন" ব্যবহার করবে এবং খুব সুন্দর! আমি একটি অনুরূপ স্কিম নিয়ে আসার চেষ্টা করেছি, তবে অতিরিক্ত পার্সিংয়ের সাথে আটকে থাকি, পুনরায় ব্যবহার fকরা খুব চালাক! এটি খুব খারাপ যদিও এটির সঠিক "যুক্তি" $*কেবল একটি চরিত্র হতে পারে এবং একটি টোকেন নয় ... ভবিষ্যতের জন্য সম্ভবত অন্য ধরণের প্রতিস্থাপন হতে পারে? : 0
FryAmTheEggman

@ রেন্ডোমরা খুব দুর্দান্ত - ধন্যবাদ!
ডিজিটাল ট্রমা

3

পাইথন, 141 119 বাইট

import sys
s=str.strip;l=len;o=i=0
for x in sys.stdin:x=s(s(x),'#');y=s(x);o+=l(x)-l(y);i+=l(s(y,'#'))
print o+2*i,13*i

1
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! আপনি যদি সংজ্ঞা sদিয়ে থাকেন s=str.stripতবে লুপের বডিটি হয়ে যেতে পারে x=s(s(x),'#');y=s(x);o+=l(x)-l(y);i+=l(s(y,'#'))। এছাড়াও, শেষ লাইনে একটি অ-কার্যক্ষম স্থান রয়েছে।
ডেনিস

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