কম্পিউটার টিউটোরিয়াল

পাইথনে ব্যালুন পাওয়া শিশুর সূচক বের করার প্রোগ্রাম

ধরা যাক n জন শিশু একটি সার্কেলে দাঁড়িয়ে আছে এবং ব্যালুন পাওয়ার জন্য অপেক্ষা করছে। বিতরণ k-তম শিশু থেকে শুরু হবে (প্রথম শিশুর সূচক ০), এবং যেন ব্যালুন পেলে সে সার্কেল ছাড়ে যাবে। এখন প্রতি k-তম শিশুকে ঘড়ির কাঁটায় ঘুরন দিয়ে ব্যালুন দেওয়া হবে যতক্ষণ না একমাত্র শিশু বাঞ্চায় যাবে যাকে শেষ ব্যালুনটি দেওয়া হবে। n এবং k দিয়ে শেষ ব্যালুন পাওয়া শিশুর সূচক বের করতে হবে।

উদাহরণ

ইনপুট: n = 3, k = 2

আউটপুট: 1

ব্যাখ্যা: প্রথম রাউন্ডে শিশু ২ ব্যালুন পেয়ে চলে যায়, সার্কেল থাকে [0, 1]। দ্বিতীয় রাউন্ডে শিশু ০ ব্যালুন পায়, সার্কেল থাকে [1]।

সমাধানের ধাপসমূহ

  1. arr := 0 থেকে n-1 পর্য্ত সংখ্যাগুলোর একটি লিস্ট
  2. init := 0
  3. arr-এর দৈর্ঘ্য ১-র বেশি থাকা পর্যন্ত:
    • remove := (init + k) % len(arr)
    • del arr[remove]
    • init := remove
  4. arr[0] ফেরত দিন

পাইথন ইমপ্লিমেন্টেশন

class Solution:
    def solve(self, n, k):
        arr = list(range(0, n))
        init = 0
        while len(arr) > 1:
            remove = (init + k) % len(arr)
            del arr[remove]
            init = remove
        return arr[0]

ob = Solution()
n = 3
k = 2
print(ob.solve(n, k))

ইনপুট

3, 2

আউটপুট

1
  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা

  3. পাইথনে অ্যারের যোগফল বের করা

  4. পাইথন প্রোগ্রাম: বৃত্তের ক্ষেত্রফল বের করা