কোডগল্ফ রেইনবো: প্রতিবিম্ব সহ রঙ বাছাই করা


9

পরিচিতি:

আমি দুটি রংধনু-সম্পর্কিত চ্যালেঞ্জ পোস্ট করার পরে: কোডগল্ফ রেইনবো: মজা দিয়ে পূর্ণসংখ্যার-অ্যারে 1 এবং কোডগলফ রেইনবো: ব্ল্যাক-অ্যান্ড হোয়াইট 2 এ আঁকুন , নিম্নলিখিত মন্তব্যটি ASCII তে ক্রিসম দ্বারা করেছেন ( ব্ল্যাক অ্যান্ড হোয়াইটে আঁকুন) ) চ্যালেঞ্জ :

হতে পারে আপনি এটি জানেন এবং এটি নকশা অনুসারে (আমি জানি যে রেইনবোগুলি রম্বস বা অ্যাসকিও নয়, এবং উচ্চতর আদেশের অবস্থানগুলি আরও জটিল হয়), তবে ২ য় রংধনুতে রঙগুলি কি বিপরীত হয় না?

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

সুতরাং, আসুন সেই তৃতীয়টি ব্যবহার করে তৃতীয় সম্পর্কিত চ্যালেঞ্জ করি make

চ্যালেঞ্জ:

ইনপুট: একটি ধনাত্মক পূর্ণসংখ্যা nযা হয় >=2এবং আকারের পূর্ণসংখ্যার তালিকা >= n+1
আউটপুট: একই তালিকা আদেশ হিসাবে দেওয়া হয়েছে:

  1. প্রথমে আকারের উপ-তালিকাগুলিতে ইনপুট তালিকাগুলি বিভক্ত করুন n(যেখানে পিছনের উপ-তালিকাটি কোনও আকারের হতে পারে [1,n])।
  2. তারপরে আমরা উপ-তালিকার পরিমাণের ভিত্তিতে নিম্নলিখিতটি করি m:
    • m - m//2সর্বনিম্ন থেকে সর্বোচ্চ (যেখানে //পূর্ণসংখ্যা-বিভাজন) সাব-তালিকার প্রথম পরিমাণে বাছাই করুন । (6 টি উপ-তালিকার সাথে প্রথম তিনটি সর্বনিম্ন থেকে সর্বোচ্চে বাছাই করা হবে; 5 টি উপ-তালিকার সাথে প্রথম তিনটি নিম্ন থেকে সর্বোচ্চে বাছাই করা হবে))
    • m//2সর্বনিম্ন থেকে সর্বনিম্ন সর্বনিম্ন সাব-তালিকাগুলি বাছাই করুন (যেখানে //পূর্ণসংখ্যা-ভাগ)। (অর্থাত্ sub টি উপ-তালিকার সাথে শেষ তিনটি সর্বোচ্চ থেকে নিম্নে বাছাই করা হবে; ৫ টি উপ-তালিকার সাথে শেষ দুটিটি সর্বোচ্চ থেকে নিম্নে বাছাই করা হবে))
  3. সমস্ত উপ-তালিকাগুলি একত্রিত করে আবার একক তালিকা তৈরি করতে

উদাহরণ:

ইনপুট: n=7এবং [3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10]
পদক্ষেপ 1: [[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]]
পদক্ষেপ 2: [[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]]
পদক্ষেপ 3 / আউটপুট:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5]

ইনপুট: n=4এবং [7,4,-8,9,3,19,0,-23,-13,13]
পদক্ষেপ 1: [[7,4,-8,9],[3,19,0,-23],[-13,13]]
পদক্ষেপ 2: [[-8,4,7,9],[-23,0,3,19],[13,-13]]
পদক্ষেপ 3 / আউটপুট:[-8,4,7,9,-23,0,3,19,13,-13]

চ্যালেঞ্জ নিয়ম:

  • পূর্ণসংখ্যা ইনপুটটি n1 এর চেয়ে বড় হওয়ার গ্যারান্টিযুক্ত।
  • পূর্ণসংখ্যা-তালিকার আকারের চেয়ে বড় হওয়া গ্যারান্টিযুক্ত n
  • পেছনের সাব-তালিকাটি ছোট হতে পারে n(উদাহরণ এবং পরীক্ষার ক্ষেত্রে যেমন দেখা যায়)।
  • আই / ও ফর্ম্যাটটি যে কোনও যুক্তিসঙ্গত বিন্যাসে নমনীয়। পূর্ণসংখ্যা বা দশমিকের তালিকা / অ্যারে, কমা / স্পেস / নিউলাইন সীমিত স্ট্রিং, পূর্ণসংখ্যার প্রবাহ ইত্যাদি হতে পারে (আউটপুটটি ধাপ 2 এর মতো তালিকার 2D তালিকা নাও হতে পারে Step ধাপ 3 এটিকে একক তালিকায় ফিরিয়ে আনার জন্য পদক্ষেপ 3 এই চ্যালেঞ্জের জন্য প্রয়োজনীয়)

সপ্তাহের দিন:

  • এই , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহার করার অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।

পরীক্ষার কেস:

Inputs: n=7 and [3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10]
Output: [-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5]

Inputs: n=4 and [7,4,-8,9,3,19,0,-23,-13,13]
Output: [-8,4,7,9,-23,0,3,19,13,-13]

Inputs: n=2 and [7,-3,1]
Output: [-3,7,1]

Inputs: n=3 and [1,6,99,4,2]
Output: [1,6,99,4,2]

Inputs: n=2 and [5,2,9,3,-5,-5,11,-5,4,12,9,-2,0,4,1,10,11]
Output: [2,5,3,9,-5,-5,-5,11,4,12,9,-2,4,0,10,1,11]

Inputs: n=3 and [5,2,9,3,-5,-5,11,-5,4,12,9,-2,0,4,1,10,11]
Output: [2,5,9,-5,-5,3,-5,4,11,12,9,-2,4,1,0,11,10]

উত্তর:


5

ব্র্যাচল্যাগ , 18 17 16 বাইট

ġ₎↔ḍ↔{izo₎ᵐ↔}ᶠcc

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

-১ বাইট @ সুন্দরকে ধন্যবাদ

হিসাবে ইনপুট আশা [<integer list>, n]। দ্রষ্টব্য যে নেতিবাচক পূর্ণসংখ্যাগুলি _ব্র্যাচল্যাগের "কম বিয়োগ" দ্বারা উপস্থাপিত হয় । আউটপুট ভেরিয়েবল হয় R

প্রথমবার ব্র্যাচিয়েলগের চেষ্টা করা, তাই আমি কল্পনা করি এটি বাইটস হ্রাস করার জন্য উপ-অনুকূল এবং পাকা।

ব্যাখ্যা

বিভাজন, দ্বিখণ্ডিত, সূচকের ভিত্তিতে বাছাই করুন (0: asc, 1: desc), সমতল।

ġ₎               | split head of input into groups of length n (last of list)
  ↔              | reverse so that...
   ḍ             | dichotomize splits in two, attaching any additional element to the second list
    ↔            | reverse so first half of partitions corresponds to the 0 index
     {      }    | apply
      i          | : append index
       z         | : zip each sublist with the index of its parent
        o₎ᵐ      | : map over sublists, ordering by the zipped index
           ↔     | : undo earlier reverse
             ᶠ   | find all outputs
              cc | flatten two levels

17 টি বাইট পেতে আপনার দ্বিতীয় সমাধানটিতে একটি ছোট্ট খামচি: এটি অনলাইনে চেষ্টা করুন!
সূন্দর - মনিকা পুনরায় ইনস্টল করুন

@ সুন্দর আমার কাছে একটি লুক্কায়িত সন্দেহ ছিল যে আমি অনেকগুলি ম্যাপ করছি, ধন্যবাদ!
অপ্রয়োজনীয়

এই ভাষাটি কিসের জন্য?
স্যাম অরোজকো

@ সামোরোজকো টারস ঘোষণামূলক লজিক প্রোগ্রামিং। ভাষার নামে ক্লিক করার চেষ্টা করুন!
এডম

3

1
এই প্রোগ্রামিংয়ের ভাষা কেন বিদ্যমান তা আমি বুঝতে পারি না।
স্যাম অরোজকো

@ সামোরোজকো এটির একমাত্র উদ্দেশ্য হ'ল সম্ভব সংক্ষিপ্ত কোড সহ সমস্যাগুলি সমাধান করা।
এডম

ওহ সত্যিই. চমৎকার.
স্যাম অরোজকো



2

05 এ বি 1 ই (উত্তরাধিকার) , 9 বাইট

ô€{2ä`í«˜

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

এটি অনলাইন চেষ্টা করুন! মধ্যে 05AB1E (Elixir লেখা) - আশা ইনপুট স্ট্যাক, একটি ডিফল্ট ইনপুট / আউটপুট পদ্ধতির উপর যাবে।

কেভিন নিজের 11-বাইটার নিয়ে এসেছিলেন যা আমি 10 এ পেয়েছিলাম। তারপরে আমি 9 বাইটের জন্য অন্য কিছু নিয়ে এসেছি।


সুন্দর. এখানে 11-বাইট বিকল্প হিসেবে আমার প্রাথমিক সমাধান ছিল: ô€{2äRć€R)˜
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন আপনার অ্যাপ্রোচ হাহা ব্যবহার করে 10 এ পৌঁছেছে। সম্পাদনা : 9 এখন!
মিঃ এক্সকোডার

আহ, সুন্দর। সম্পর্কে সম্পূর্ণরূপে ভুলে গেছি í। এবং চমৎকার অতিরিক্ত গল্ফ।
কেভিন ক্রুইজসেন

2

জাভাস্ক্রিপ্ট (ES6), 82 81 বাইট

@ রিডানডেন্সি ধন্যবাদ 1 বাইট সংরক্ষণ করা

হিসাবে ইনপুট লাগে (list)(n)

a=>n=>(g=z=>a+a?[...a.splice(0,n).sort((x,y)=>1/z?x-y:y-x),...g(a[i+=n])]:a)(i=0)

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


যেহেতু aএক-মাত্রিক, তাই আমি বিশ্বাস করি যে আপনি খালি নয় কেসটি পরীক্ষা করতে এবং 1 বাইট সংরক্ষণ করতে পারবেন a>[]with a+aবিভাজন এবং নির্ধারণের জন্য সত্যই চতুর পুনরুক্তি কৌশলটি কখন বাছাই করতে হবে বিপরীতটিও, পাশাপাশি!
অপ্রয়োজনীয়

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