এই প্রশ্নটি নম্বর-প্লেসমেন্ট ধাঁধা টাওয়ার (যা স্কাইস্ক্রেপারস নামে পরিচিত) এর উপর ভিত্তি করে তৈরি করা হয়, যা আপনি অনলাইনে খেলতে পারেন । আপনার লক্ষ্য ধাঁধাটির সমাধান নিয়ে যাওয়া এবং ক্লুগুলি নির্ধারণ করা - প্রতিটি সারি এবং কলামে টাওয়ারের সংখ্যা দৃশ্যমান। এটি কোড গল্ফ, তাই খুব কম বাইট জিতেছে।
টাওয়ারগুলি কীভাবে কাজ করে
একটি - একটি টাওয়ার্স ধাঁধা সমাধান একটি ল্যাটিন বর্গাকার হয় n*n
গ্রিড যা প্রত্যেক সারি ও কলাম সংখ্যার একটি বিন্যাস রয়েছে 1
মাধ্যমে n
। উদাহরণস্বরূপ n=5
:
4 3 5 2 1
5 4 1 3 2
1 5 2 4 3
2 1 3 5 4
3 2 4 1 5
প্রতিটি সারি এবং কলাম প্রতিটি প্রান্তে যেমন একটি ক্লু দিয়ে লেবেলযুক্ত:
2 3 1 4 5
v v v v v
2 > 4 3 5 2 1 < 3
1 > 5 4 1 3 2 < 4
2 > 1 5 2 4 3 < 3
3 > 2 1 3 5 4 < 2
3 > 3 2 4 1 5 < 1
^ ^ ^ ^ ^
2 2 2 2 1
প্রতিটি ক্লু এমন এক নম্বর যা 1
আপনাকে n
জানায় যে কতগুলি টাওয়ার আপনি সেই দিক থেকে সারি / কলামটি বরাবর দেখছেন, যদি সংখ্যাগুলি যদি সেই উচ্চতার সাথে টাওয়ার হিসাবে বিবেচনা করা হয়। প্রতিটি টাওয়ার এর পিছনে খাটো টাওয়ার ব্লক করে। অন্য কথায়, আপনি যে টাওয়ারগুলি দেখতে পাচ্ছেন সেগুলি হ'ল সেগুলির আগে যে কোনও টাওয়ারের চেয়ে লম্বা।
উদাহরণস্বরূপ, আসুন প্রথম সারিটি দেখুন।
2 > 4 3 5 2 1 < 3
এটির 2
বাম দিক থেকে একটি সূত্র রয়েছে কারণ আপনি 4
এবং এটি দেখতে পারেন 5
। 4
ব্লক 3
দৃষ্টিশক্তি এবং থেকে 5
অন্য ব্লক সবকিছু। ডান দিক থেকে, আপনি দেখতে পারেন 3
টাওয়ার: 1
, 2
, এবং 5
।
প্রোগ্রাম প্রয়োজনীয়তা
উপরের বাম দিক থেকে ঘড়ির কাঁটার দিকে এগিয়ে এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা সংখ্যার গ্রিড এবং আউটপুটগুলি বা ক্লুগুলি মুদ্রণ করে।
ইনপুট
একটি n*n
ল্যাটিন-বর্গক্ষেত্র সঙ্গে 2<=n<=9
।
ফর্ম্যাটটি নমনীয়। আপনি এমন কোনও ডেটা স্ট্রাকচার ব্যবহার করতে পারেন যা কোনও গ্রিড বা সংখ্যা বা অঙ্কের অক্ষরযুক্ত তালিকা উপস্থাপন করে। আপনার সারিগুলির মধ্যে বিভাজক বা কোনও বিভাজক লাগবে না। কিছু সম্ভাবনা হ'ল একটি তালিকা, তালিকার একটি তালিকা, একটি ম্যাট্রিক্স, একটি টোকেন দ্বারা পৃথক স্ট্রিং like
43521 54132 15243 21354 32415,
বা ফাঁকা জায়গা ছাড়াই একটি স্ট্রিং।
আপনাকে n
ইনপুট অংশ হিসাবে দেওয়া হয় নি ।
আউটপুট
উপরের বাম থেকে শুরু করে এবং ঘড়ির কাঁটার দিকে এগিয়ে যাওয়া ক্লুগুলি ফিরে আসা বা মুদ্রণ করুন। সুতরাং, প্রথমে উপরের ক্লুগুলি ডানদিকে পড়া, তারপরে ডান ক্লুগুলি নীচের দিকে পড়া, তারপরে নীচের ক্লুগুলি বাম দিকে পড়া, বাম ক্লুগুলি উপরের দিকে পড়া।
এটি 23145 34321 12222 33212
পূর্ববর্তী উদাহরণের জন্য হবে
2 3 1 4 5
v v v v v
2 > 4 3 5 2 1 < 3
1 > 5 4 1 3 2 < 4
2 > 1 5 2 4 3 < 3
3 > 2 1 3 5 4 < 2
3 > 3 2 4 1 5 < 1
^ ^ ^ ^ ^
2 2 2 2 1
ইনপুট হিসাবে, আপনি একটি তালিকা, স্ট্রিং বা যে কোনও আদেশযুক্ত কাঠামো ব্যবহার করতে পারেন। চারটি "গোষ্ঠী" পৃথক করা যায় বা না, নেস্টেড বা ফ্ল্যাট কাঠামোতে। তবে, প্রতিটি গ্রুপের জন্য ফর্ম্যাটটি অবশ্যই সমান হবে।
উদাহরণ পরীক্ষার ক্ষেত্রে:
(আপনার ইনপুট / আউটপুট ফর্ম্যাটটি এগুলির মতো হবে না))
>> [[1 2] [2 1]]
[2 1]
[1 2]
[2 1]
[1 2]
>> [[3 1 2] [2 3 1] [1 2 3]]
[1 2 2]
[2 2 1]
[1 2 3]
[3 2 1]
>> [[4 3 5 2 1] [5 4 1 3 2] [1 5 2 4 3] [2 1 3 5 4] [3 2 4 1 5]]
[2 3 1 4 5]
[3 4 3 2 1]
[1 2 2 2 2]
[3 3 2 1 2]
>> [[2 6 4 1 3 7 5 8 9] [7 2 9 6 8 3 1 4 5] [5 9 7 4 6 1 8 2 3] [6 1 8 5 7 2 9 3 4] [1 5 3 9 2 6 4 7 8] [3 7 5 2 4 8 6 9 1] [8 3 1 7 9 4 2 5 6] [9 4 2 8 1 5 3 6 7] [4 8 6 3 5 9 7 1 2]]
[4 2 2 3 3 3 3 2 1]
[1 3 3 2 2 2 2 3 3]
[4 3 2 1 2 3 3 2 2]
[3 1 2 4 3 3 2 2 5]
আপনার সুবিধার জন্য, এখানে ফ্ল্যাট স্ট্রিং বিন্যাসে একই পরীক্ষার কেস রয়েছে।
>> 1221
21
12
21
12
>> 312231123
122
221
123
321
>> 4352154132152432135432415
23145
34321
12222
33212
>> 264137589729683145597461823618572934153926478375248691831794256942815367486359712
422333321
133222233
432123322
312433225
≢¨∪¨↓⌈\(⍉⍪⌽⍪⍉∘⌽∘⊖⍪⊖)